gpt4 book ai didi

docker - 无法在重叠式网络上连接容器:[emerg]无效的主机

转载 作者:行者123 更新时间:2023-12-02 20:06:08 24 4
gpt4 key购买 nike

我正在尝试通过集群中的Nginx容器将请求反向代理到共享相同覆盖网络的独立容器。

tldr;我收到以下错误:

2018/03/15 19:00:35 [emerg] 1#1: invalid host in upstream "http://nginx" in /etc/nginx/nginx.conf:96
nginx: [emerg] invalid host in upstream "http://nginx" in /etc/nginx/nginx.conf:96

独立容器包含一个具有另一个nginx前端的应用程序:
version: "3"
services:
nginx:
restart: always
container_name: my.nginx
build: ./nginx
networks:
- default
- my-overlay-network
depends_on:
- another-service

... other services

networks:
my-overlay-network:
external: true

我使用 docker-compose up -d启动此应用程序。

我的团队包含反向代理:
version: "3"
services:
reverseproxy:
build: ./reverseproxy
image: reverse_proxy
networks:
- my-overlay-network
ports:
- "80:80"
- "443:443"
volumes:
- /etc/letsencrypt:/etc/letsencrypt
deploy:
replicas: 10
restart_policy:
condition: on-failure

networks:
my-overlay-network:
external: true

如果在不为独立应用程序指定proxy_pass的情况下启动nginx群,则可以像这样成功ping其他主机:
ping http://nginx/
我可以根据nginx日志确认其他主机收到此请求。

但是,如果我在反向代理中指定docker独立应用程序:
upstream standalone {
server http://nginx/;
}


server {
listen 443 ssl http2;
listen [::]:443 ssl http2;

... other stuff ...

location / {
proxy_pass http://standalone/;
}
}

我收到以下错误:
2018/03/15 19:00:35 [emerg] 1#1: invalid host in upstream "http://nginx" in /etc/nginx/nginx.conf:96
nginx: [emerg] invalid host in upstream "http://nginx" in /etc/nginx/nginx.conf:96

最佳答案

尝试在上游之前添加resolver:

resolver 127.0.0.11;
upstream standalone {
server http://nginx/;
}
127.0.0.11是嵌入式Docker DNS服务器的地址

关于docker - 无法在重叠式网络上连接容器:[emerg]无效的主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49307424/

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