运行 同一局域网服务器 nginx 上的多个 Web 应用程序

Running Multiple Web Applciations on the Same LAN Server nginx

我在 LAN 网络上为 2 个 docker 容器提供服务,一个云服务器在端口 5234 上,另一个 Flask 应用程序在 8080 上。

我正在尝试使用 nginx 作为 运行 它们在同一 IP 上的反向代理,但扩展名不同。我的配置:

server {
listen 80 default_server;
server_name 192.168.1.23;

location /web {
    proxy_pass http://127.0.0.1:8080;
    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-Proto $scheme;

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

location /cloud {
    proxy_pass http://127.0.0.1:5234;
    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-Proto $scheme;

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

}

但我在访问 192.168.1.23/web 或 192.168.1.23/cloud 时收到 502 Bad Gateway。

在flaskapp.error.log中:

connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.1.72, server: 192.168.1.23, request: "GET /web HTTP/1.1", upstream: "http://127.0.0.1:8080/", host: "192.168.1.23"

在nextcloud.error.log中:

recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.1.72, server: 192.168.1.23, request: "GET /cloud HTTP/1.1", upstream: "http://127.0.0.1:5234/cloud", host: "192.168.1.23"

有没有办法 运行 在同一个 ip 上或使用不同端口的多个 Web 应用程序?

0.0.0.0 不是有效的 IP 地址。尝试 127.0.0.1 指的是本地主机。 像这样:

proxy_pass http://127.0.0.1:8080;