Nginx反向代理docker容器局域网

问题描述 投票:0回答:1

我无法理解nginx反向代理如何工作也许有人可以提供帮助。让我说我在LAN中使用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

在angular-on-nginx容器上有角度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时相同的结果?

docker nginx localhost
1个回答
0
投票

不知道为什么但这有效。

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;
    }   
}
© www.soinside.com 2019 - 2024. All rights reserved.