Nginx - 使用 Signalr 托管 .net 核心应用程序

Nginx - 使用 Signalr 托管 .net 核心应用程序

我有一个 ASP.NET Core Web 应用程序,它使用 signalR 集线器与客户端通信。我在带有 nginx 反向代理的 Raspberry Pi 2 上托管它。

该应用程序在本地主机端口 5000 上运行。我正在使用 nginx 反向代理,但由于某种原因,它无法在端口 80 上运行。除端口 80 外,任何其他端口都会重定向到 Web 应用程序,并返回 404。

另一个问题是,根据“proxy_set_header Connection”参数,我的登录或 signalR 集线器无法正常工作。将连接设置为“升级”时,集线器可以正常工作,但我无法登录服务(输入凭据后,我被重定向到主页,但我未登录),当将其设置为保持活动状态时,我可以登录,但我无法通过集线器发送任何内容。

我正在使用 Visual Studio 2019 生成的默认标识。

我的 /etc/nginx/sites-available/default 设置:

server {
        listen 5123;
        server_name _;
        location / {
                proxy_pass http://localhost:5000;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
        }
}

server {
        listen 80;
        server_name _;
        location / {
                proxy_pass http://localhost:5000;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection keep-alive;
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;

        }
}

我用 Google 没找到任何解决方案。请帮忙!

相关内容