502 Bad Gateway 与 Nginx 服务器托管 dotnet 核心项目

问题描述 投票:0回答:1

我可以访问在本地端口 5001 上运行的 dotnet 核心应用程序。但是,当通过具有反向代理配置的公共 IP 访问时,我得到了错误的网关。

我的域应用了 SSL,只有通过端口 443 的入站流量。 服务器名称 unix.example.com

我错过了什么?

location  / {
                      root /var/www/html/masterwebsite/publish/;
                      proxy_http_version 1.1;
                      proxy_set_header "Connection" "";
                      proxy_pass http://127.0.0.1:5001;
                      proxy_buffering off;
                      proxy_set_header X-Real-IP $remote_addr;
                      proxy_set_header X-Forwarded-Host $host;
                      proxy_set_header X-Forwarded-Port $server_port;
                      proxy_temp_file_write_size 64k;
                      proxy_connect_timeout 10080s;
                      proxy_send_timeout 10080;
                      proxy_read_timeout 10080;
                      proxy_buffer_size 64k;
                      proxy_buffers 16 32k;
                      proxy_busy_buffers_size 64k;
                      proxy_redirect off;
                      proxy_request_buffering off;
    
                  }
            server_name _;

错误日志中的错误

2023/04/09 00:39:14 [错误] 36703#36703:*1 上游过早 从上游读取响应标头时关闭连接,客户端: 86.18.44.49,服务器:unix.example.com,请求:“GET /masterwebsite/ HTTP/1.1”,上游:“http://127.0.0.1:5001/masterwebsite/”,

nginx .net-core reverse-proxy
1个回答
0
投票

我设法自己弄明白了。

线索在nginx日志中。

我希望代理指向的 URL 是

http://127.0.0.1:5001

但是它在 nginx 日志中显示了这个

http://127.0.0.1:5001/masterwebsite/

额外的位

/masterwebsite/
是问题所在。

它是由于 URL 末尾缺少尾部斜杠而发生的

proxy_pass http://127.0.0.1:5001/;

© www.soinside.com 2019 - 2024. All rights reserved.