我有一个简单的 Web 应用程序在 Docker 容器中运行,并在端口 81 上公开。
curl http://127.0.0.1:81
返回该 Web 应用程序的 index.html。因此它正在运行并且可以访问。另外本地主机或者使用浏览器就可以了。
现在我添加了一个带有 Nginx 的容器。
我想将对端口 80 的调用重定向到 Web 应用程序。这是我最简单的/etc/nginx/nginx.conf文件:
events {}
http {
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:81;
#proxy_pass http://google.com;
}
}
}
将 proxy_pass 切换到指向 Google 的代理就可以了,所以我认为错误是因为 nginx 无法与 Web 应用程序“通信”(这也是我读到的有关 nginx 和 502 错误的内容)。
docker -it <container-name> /bin/bash
我使用但是然后
cat /var/log/nginx/error.log
或cat /var/log/nginx/access.log
或访问 nginx 实例尾巴不起作用(进入编辑模式,但没有内容)。
完成这个简单的步骤后,我想使用上游在 2 个 Web 应用程序实例上建立负载均衡器,因此如下所示:
events {}
http {
upstream api {
server 127.0.0.1:81;
}
server {
listen 80 default;
#listen [::]:80;
#access_log /dev/stdout;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
#proxy_pass http://127.0.0.1:81;
#proxy_pass http://google.com;
proxy_pass http://api;
proxy_redirect off;
}
}
}
再次,这不起作用。