Puncte:0

Docker-compose: cum să utilizați Nginx Reverse Proxy cu rutare

drapel it

Folosesc docker-compose cu nginx reverse proxy pentru a-l rula pe server cu căi diferite:

  • ip_server/backend
  • ip_server /frontend

ar trebui să funcționeze pe portul 80.

Îl testez cu un docker-compose folosind nginx ca nume de container web și phpmyadmin ca nume de container myadmin (mysql):

Servicii:
    web:
        imagine: nginx:alpine
        retele:
            docker-network:
               aliasuri:
                   - numele frontend-ului
        container_name: web
        volume:
            - „./etc/nginx/default.conf:/etc/nginx/conf.d/default.conf”
            - „./etc/ssl:/etc/ssl”
            - „./web:/var/www/html”
            - „./etc/nginx/default.template.conf:/etc/nginx/conf.d/default.template”
        porturi:
            - „${HTTP_PORT}:80”
            - „${HTTPS_PORT}:443”
        mediu inconjurator:
            - NGINX_HOST=${NGINX_HOST}
            #- VIRTUAL_HOST= a.com
        comandă: /bin/sh -c "envsubst '$$NGINX_HOST' < /etc/nginx/conf.d/default.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;' "
        reporniți: întotdeauna
        depinde de:
            - php
            - mysqldb

    php:
        imagine: nanoninja/php-fpm:latest
        retele:
            docker-network:
               aliasuri:
                   - php-name  
        nume_container: php-fpm
        reporniți: întotdeauna
        volume:
            - „./etc/php/php.ini:/usr/local/etc/php/conf.d/php.ini”
            - „./web:/var/www/html”

    myadmin:
        imagine: phpmyadmin/phpmyadmin
        retele:
            docker-network:
               aliasuri:
                   - nume-backend  
        container_name: myadmin
        porturi:
            - „${PHPMYADMIN_PORT}:80”
        mediu inconjurator:
            - PMA_ARBITRARY=1
            - PMA_HOST=${MYSQL_HOST}
           # - PMA_ABSOLUTE_URI: https://localhost/pma/
        reporniți: întotdeauna
        depinde de:
            - mysqldb

    mysqldb:
        construi:
            context: .
            dockerfile: Dockerfile-mariadb
            argumente:
                MARIADB_VERSION: ${MARIADB_VERSION}
        retele:
            docker-network:
               aliasuri:
                   - nume-mysql
        container_name: ${MYSQL_HOST}
        reporniți: întotdeauna
        env_file:
            - „.env”
        mediu inconjurator:
            - MYSQL_DATABASE=${MYSQL_DATABASE}
            - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
            - MYSQL_USER=${MYSQL_USER}
            - MYSQL_PASSWORD=${MYSQL_PASSWORD}
        porturi:
            - „127.0.0.1:${MYSQL_PORT}:3306”
        volume:
            - „./mysql-bbdd:/var/lib/mysql”

retele:
    docker-network:
       # șofer: pod

folosind fișierul nginx default.conf pentru a face proxy invers:

Server {
    asculta 80 default_server;
    asculta [::]:80 default_server;
    nume_server gazdă locală;

    index index.php index.html;
    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/html/public;

    locație ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

    Locație / {
          
        proxy_pass http://web;
         
    }

    locație /api {
  
        proxy_pass http://myadmin:8080/;
    }

    locație = /404.html {
 
        intern;
    }
}

dar nu imi merge cand pun ip-ul serverului cu rutele lui, nu stiu ce sa fac.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.