我正在尝试使用 docker、nginx 和 uwsgi 建立一个 django 站点:我有一个 nginx docker 容器作为反向代理(称为 ceca-nginx-proxy)dnsmasq
运行,另一个 nginx(ceca-nginx)容器进行通信使用 uwsgi 容器 (ceca-uwsgi),我可以使用 curl (with ) 连接到 ceca-nginx 容器,并让 django 站点在 ceca-uwsgi 容器中运行,问题是当我想通过 ceca 获取站点时-nginx-proxy:我的 ceca-nginx-proxy 错误日志中出现此错误:curl --resolve http://test.ceca.com http://172.17.0.7
ceca-nginx 无法解析(5:操作被拒绝),客户端:172.17.0.1,服务器:*.ceca.com,请求:“GET / HTTP/1.1”,主机:“172.17.0.8”
- 172.17.0.1 是分配的 docker ip
- *.ceca.com 是 ceca-nginx-proxy 的 nginx 配置中定义的 server_name
- 172.17.0.8 是 ceca-nginx-proxy ip
ceca-nginx-proxy 反向代理的服务器块为:
server { listen 80; server_name *.ceca.com; error_log /tmp/proxy_error_nginx.log warn; access_log /tmp/proxy_access_nginx.log; location / { set $example ceca-nginx; resolver 127.0.0.1; proxy_pass http://$example; } }
我在同一台机器上运行 dnsmasq 来解析 /etc/hosts 中的主机名(来自 docker 链接容器的主机名),如下所示:
dnsmasq -q -8 /tmp/dnsmasq.log --port 53 -R -u root
对于我在 dnsmasq.log 中看到的内容,主机名解析正常 [1] 但 nginx 抱怨并返回“502 Bad Gateway”页面。如果有人能帮我解决这个问题,我将永远感激不尽,如果我们见面,我会买很多啤酒和蕨类植物。
[1] Jun 6 21:39:47 dnsmasq[321]: query[A] ceca-nginx from 127.0.0.1 Jun 6 21:39:48 dnsmasq[321]: /etc/hosts ceca-nginx is 172.17.0.7 Jun 6 21:39:48 dnsmasq[321]: query[AAAA] ceca-nginx from 127.0.0.1