gpt4 book ai didi

Docker:proxy_pass 到另一个容器 - nginx:在上游找不到主机

转载 作者:行者123 更新时间:2023-12-02 17:42:09 24 4
gpt4 key购买 nike

(我知道其他人之前已经问过这个问题,但我无法使用其他帖子中提出的解决方案解决问题,所以我想我会尝试发布我的配置文件,看看是否有人可以提供帮助。)

我想为 nginx 创建一个容器,并使用 proxy_pass将请求传递给正在运行的 Web 应用程序的容器。我不知道如何在两个容器之间进行通信。当我尝试运行时 docker stack deploy -c docker-compose.yml somename ,只有 web 容器启动。 nginx容器启动失败,卡在尝试重启的循环中。这是我得到的日志消息:

2017/08/16 14:56:10 [emerg] 1#1: host not found in upstream "web:8000" in /etc/nginx/conf.d/nginx.conf:2 nginx: [emerg] host not found in upstream "web:8000" in /etc/nginx/conf.d/nginx.conf:2



我在 docker-compose.yml中找到了一个答案,只要你在services下使用相同的名称即可。文件,nginx 会找到变量。但是,这对我来说似乎没有帮助。

不同容器之间的这种通信是如何工作的? “网络”变量在哪里

我见过的大多数例子都使用 version: "2"docker-compose.yml文件,这应该有所作为吗?

我的 docker-compose.yml:
version: "3"
services:
web:
image: user/repo:web
deploy:
resources:
limits:
cpus: "0.1"
memory: 50M
restart_policy:
condition: on-failure
ports:
- "8000:80"
networks:
- webnet

nginx:
image: user/repo:nginx
ports:
- 80:80
links:
- web:web
depends_on:
- web

networks:
webnet:

Nginx 配置:
upstream docker-web {
server web:8000;
}


server {
listen 80;

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

location / {
proxy_pass http://docker-web;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}

最佳答案

我想出了如何解决这个问题。得到一些帮助来修复 docker-compose.yml ,所以它看起来像这样:

docker-compose-yml:

version: "3"
services:
web:
image: user/repo:web
deploy:
resources:
limits:
cpus: "0.1"
memory: 50M
restart_policy:
condition: on-failure
ports:
- "8000:80"
networks:
main:
aliases:
- web


nginx:
image: user/repo:nginx
ports:
- 80:80
links:
- web:web
depends_on:
- web
networks:
main:
aliases:
- nginx
networks:
main:

此后,nginx 容器实际运行,但仍无法连接到 Web 容器。发现我可以同时使用 curl webcurl web -p 8000从 nginx 容器内的 web 获取页面。然后我在我的 nginx.conf 中更改了上游由此
upstream docker-web {
server web:8000;
}

对此:
upstream docker-web {
server web;
}

关于Docker:proxy_pass 到另一个容器 - nginx:在上游找不到主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45717835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com