Nginx 代理不适用于本地主机的 81 端口 - 始终为 502(网关错误)

Nginx 代理不适用于本地主机的 81 端口 - 始终为 502(网关错误)

我有一个简单的 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.logcat /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;
        }
    }
}

再次,这不起作用。

相关内容