Score:0

Docker-compose: วิธีใช้ Nginx Reverse Proxy พร้อมการกำหนดเส้นทาง

ธง it

ฉันใช้ docker-compose กับ nginx reverse proxy เพื่อรันบนเซิร์ฟเวอร์ด้วยเส้นทางที่แตกต่างกัน:

  • server_ip/แบ็กเอนด์
  • server_ip /ส่วนหน้า

ควรทำงานบนพอร์ต 80

ฉันกำลังทดสอบด้วย docker-compose โดยใช้ nginx เป็นชื่อเว็บคอนเทนเนอร์และ phpmyadmin เป็นชื่อคอนเทนเนอร์ myadmin (mysql):

บริการ:
    เว็บ:
        ภาพ: nginx:alpine
        เครือข่าย:
            เครือข่ายนักเทียบท่า:
               นามแฝง:
                   - ชื่อส่วนหน้า
        container_name: เว็บ
        ปริมาณ:
            - "./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"
        พอร์ต:
            - "${HTTP_PORT}:80"
            - "${HTTPS_PORT}:443"
        สิ่งแวดล้อม:
            - NGINX_HOST=${NGINX_HOST}
            #- VIRTUAL_HOST= a.com
        คำสั่ง: /bin/sh -c "envsubst '$$NGINX_HOST' < /etc/nginx/conf.d/default.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;' "
        รีสตาร์ท: เสมอ
        ขึ้นอยู่กับ:
            - php
            - mysqldb

    php:
        ภาพ: nanoninja/php-fpm:latest
        เครือข่าย:
            เครือข่ายนักเทียบท่า:
               นามแฝง:
                   - php-ชื่อ  
        ชื่อคอนเทนเนอร์: php-fpm
        รีสตาร์ท: เสมอ
        ปริมาณ:
            - "./etc/php/php.ini:/usr/local/etc/php/conf.d/php.ini"
            - "./web:/var/www/html"

    ผู้ดูแลระบบของฉัน:
        ภาพ: phpmyadmin/phpmyadmin
        เครือข่าย:
            เครือข่ายนักเทียบท่า:
               นามแฝง:
                   - แบ็กเอนด์ชื่อ  
        container_name: ผู้ดูแลระบบของฉัน
        พอร์ต:
            - "${PHPMYADMIN_PORT}:80"
        สิ่งแวดล้อม:
            - PMA_ARBITRARY=1
            - PMA_HOST=${MYSQL_HOST}
           # - PMA_ABSOLUTE_URI: https://localhost/pma/
        รีสตาร์ท: เสมอ
        ขึ้นอยู่กับ:
            - mysqldb

    mysqldb:
        สร้าง:
            บริบท: .
            dockerfile: dockerfile-mariadb
            หาเรื่อง:
                MARIADB_VERSION: ${MARIADB_VERSION}
        เครือข่าย:
            เครือข่ายนักเทียบท่า:
               นามแฝง:
                   - ชื่อ mysql
        ชื่อคอนเทนเนอร์: ${MYSQL_HOST}
        รีสตาร์ท: เสมอ
        env_file:
            - ".env"
        สิ่งแวดล้อม:
            - MYSQL_DATABASE=${MYSQL_DATABASE}
            - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
            - MYSQL_USER=${MYSQL_USER}
            - MYSQL_PASSWORD=${MYSQL_PASSWORD}
        พอร์ต:
            - "127.0.0.1:${MYSQL_PORT}:3306"
        ปริมาณ:
            - "./mysql-bbdd:/var/lib/mysql"

เครือข่าย:
    เครือข่ายนักเทียบท่า:
       # คนขับ: สะพาน

ใช้ไฟล์ nginx default.conf เพื่อทำ reverse proxy:

เซิร์ฟเวอร์ {
    ฟัง 80 default_server;
    ฟัง [::]:80 default_server;
    server_name localhost;

    ดัชนี index.php index.html;
    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    รูท /var/www/html/public;

    ตำแหน่ง ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        รวม fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

    ที่ตั้ง / {
          
        proxy_pass http://เว็บ;
         
    }

    ที่ตั้ง /api {
  
        proxy_pass http://myadmin:8080/;
    }

    สถานที่ = /404.html {
 
        ภายใน;
    }
}

แต่มันใช้ไม่ได้สำหรับฉันเมื่อฉันใส่ IP ของเซิร์ฟเวอร์ด้วยเส้นทาง ฉันไม่รู้ว่าต้องทำอย่างไร

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา