NGINX反向代理因链接的Docker容器而失败

我有以下内容docker-compose.yml

node1:

build: ./node

links:

- redis

ports:

- "8080"

node2:

build: ./node

links:

- redis

ports:

- "8080"

service1:

build: ./service

links:

- redis

ports:

- "8383"

redis:

image: redis

ports:

- "6379"

nginx:

build: ./nginx

links:

- node1:node1

- node2:node2

- service1:service1

ports:

- "80:80"

执行并运行后,docker ps我得到以下信息:

080d9d7dc2e0        dockerworkflow_nginx:latest      "nginx -g 'daemon of   5 minutes ago       Up 5 minutes        0.0.0.0:80->80/tcp, 443/tcp   dockerworkflow_nginx_1

8c25bfdb9d00 dockerworkflow_node1:latest "nodemon /src/index. 6 minutes ago Up 6 minutes 0.0.0.0:33023->8080/tcp dockerworkflow_node1_1

4ae817be2a63 dockerworkflow_service1:latest "nodemon /src/index. 6 minutes ago Up 6 minutes 0.0.0.0:33022->8383/tcp dockerworkflow_service1_1

91ff238fe3f6 dockerworkflow_node2:latest "nodemon /src/index. 6 minutes ago Up 6 minutes 0.0.0.0:33021->8080/tcp dockerworkflow_node2_1

fe0c7e02c860 redis:latest "/entrypoint.sh redi 6 minutes ago Up 6 minutes 0.0.0.0:33020->6379/tcp dockerworkflow_redis_1

到目前为止,一切似乎都很好。

nginx.conf我使用如下所示:

worker_processes 4;

events { worker_connections 1024; }

http {

server {

listen 80;

location / {

proxy_pass http://node1;

}

location /a/ {

proxy_pass http://node2;

}

location /b/ {

proxy_pass http://service1;

}

}

}

所有这些实际上应该做的是:

如果我输入,http://{host-ip}/node1容器将转发请求。

如果我输入,http://{host-ip}/a/node2容器将转发请求。

如果我输入,http://{host-ip}/b/service1容器将转发请求。

现在,502 Bad Gateway如果尝试任何操作,我都会得到帮助。

回答:

我能够找出解决方案,结果发现它是愚蠢的,没有出现在任何日志中,我很难理解。

以下是更新的nginx.conf文件。

worker_processes 4;

events { worker_connections 1024; }

http {

upstream node_app {

server node1:8080;

}

upstream service_app {

server service1:8383;

}

server {

listen 80;

location / {

proxy_pass http://node_app/;

include /etc/nginx/proxy_params;

}

location /a/ {

proxy_pass http://node_app/;

include /etc/nginx/proxy_params;

}

location /b/ {

proxy_pass http://service_app/;

include /etc/nginx/proxy_params;

}

}

}

不知道此时是否需要包含,但是指令结尾/处的结尾proxy_pass似乎在一天结束时就成功了。

以上是 NGINX反向代理因链接的Docker容器而失败 的全部内容, 来源链接: utcz.com/qa/412840.html

回到顶部