我有一个 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 没找到任何解决方案。请帮忙!