在Docker容器中配置NGINX以与其他Docker容器应用联网

egdjgwm8  于 11个月前  发布在  Docker
关注(0)|答案(1)|浏览(154)

我有一个带有nginx的docker容器(路径docker/nginx):

services:

  web:
      image: nginx
      volumes:
           - ./templates:/etc/nginx/templates
      ports:
           - "80:80"
      networks:
           - nginx-net

networks:
        nginx-net:
           name: proxynet
           external: true

字符串
Docker with app(docker/app):

services:
  php:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: app_php
    networks:      
      - nginx-net   

networks:
  nginx-net:
    external: true
    name: proxynet


File nginx conf.template

server {
      listen 80 default_server;
     server_name subdomain.domain.com;
  
  
          location /{
    proxy_pass app_php:80/; 
    }
}


我希望nginx在未来重定向到应用程序容器和其他容器。
但在Web浏览器subdomain.domain.com显示504错误。
ping -c 4 app_php-从nginx容器ping可以
我花了几个小时,我不知道是什么问题,我怀疑nginx conf

zour9fqk

zour9fqk1#

你需要在另一个端口(例如8000)上暴露app_php,并让nginx充当代理。类似于:

services:
  php:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: app_php
    networks:      
      - nginx-net
    ports:
      - 8000:80

字符串
nginx.conf:

server {
    listen 80 default_server;
    server_name subdomain.domain.com;

    location /{
          proxy_pass http://app_php:8000; 
    }
 }


最好也将所有容器放在一个docker-compose.yml文件中。

相关问题