繁体   English   中英

Nginx反向代理Docker容器LAN

[英]Nginx reverse proxy docker containers LAN

我无法理解nginx反向代理的工作方式,也许有人可以提供帮助。 可以说我的局域网中具有docker的服务器的IP为192.168.0.3我有这样的docker-compose文件:

version: '2'

  angular-on-nginx:
    build: angular_client
    ports:
      - "80:80"
    volumes:
      - ./angular_client/dist:/usr/share/nginx/html
      - ./angular_client/default.conf:/etc/nginx/conf.d/default.conf

  express:
    build: express_server
    ports:
      - "4444:4444"
    volumes:
      - ./express_server/:/usr/src/app 
    links:
      - database
    depends_on:
      - database

  database:
    image: mongo
    ports:
      - "27777:27777"
    volumes:
      - ./mongodb_data:/data/db

在nginx上的angular容器中,具有以下配置的angular app和nginx:

server {
    listen       80;
    server_name  localhost;

    root   /usr/share/nginx/html;
    index  index.html index.htm;

    location / {
        try_files $uri $uri/ /index.html;
    }
    location /express {
        proxy_pass http://192.168.0.3:4000/;
    }   
}

但这在键入192.168.0.3角度网络应用程序时加载正常并且无法正常工作。 当输入192.168.0.3:4444时,快速服务器给出的响应很好,但是当输入192.168.0.3/express时,则有502个错误的网关。 如何使其工作,以便当我输入192.168.0.3/express时得到的结果与键入192.168.0.3:4444时得到的结果相同?

不知道为什么,但这行得通。

server {
    listen       80;
    listen       [::]:80;
    server_name  192.168.0.3;

    root   /usr/share/nginx/html;
    index  index.html index.htm;

    location / {
        try_files $uri $uri/ /index.html;
    }
    location /express/ {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://192.168.0.3:4444;
    }   
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM