信号器完成CORS协商,但与nginx代理的集线器连接失败。即使使用CORS,直接连接也可以
我的网页位于信号器完成CORS协商,但与nginx代理的集线器连接失败。即使使用CORS,直接连接也可以,nginx,signalr,nginx-reverse-proxy,Nginx,Signalr,Nginx Reverse Proxy,我的网页位于example.com,主要api后端服务位于api.example.com,信号器服务位于signar.example.com 第一种也是最首选的连接方式是webpage-main-backend-signer,因为main-backend以相同的方式处理其他微服务,我希望在一台主服务器上保留SSL证书 通过这种方式,信号器完成HTTPS/negotiate请求,但在所有集线器连接尝试中失败 第二种连接方式是从网页到主后端和信号器的并行连接 |-->
example.com
,主要api后端服务位于api.example.com
,信号器服务位于signar.example.com
第一种也是最首选的连接方式是webpage-main-backend-signer
,因为main-backend以相同的方式处理其他微服务,我希望在一台主服务器上保留SSL证书
通过这种方式,信号器完成HTTPS/negotiate
请求,但在所有集线器连接尝试中失败
第二种连接方式是从网页到主后端和信号器的并行连接
|--> main backend
webpage <--|
|--> signalr
由于某些原因,代理信号器完成协商,仅在集线器连接上失败。当我将客户端直接连接到信号器后端时,它工作正常。这两种情况都需要COR。区别在于:
- 第一个连接使用http/2,而第二个连接使用http/1.1(强制第一个连接使用http/1.1没有效果)
- 第一个连接使用SSL,而第二个连接不使用SSL(在第一个连接上禁用SSL无效)
server {
// other locations and services
location ^~ /vats-hub/ {
proxy_pass http://signalr.example.com:23166;
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;
}
}