我试图创build一个安全的node.js服务器没有websocket服务器在同一端口上。 端口是8080。
我可以访问浏览器中的URL,并且可以在指定端口时连接到WebSockets。
https://ws.site.com //工作
wss://ws.site.com //不要工作
wss://ws.site.com:8080 //工作
为什么是这样? 我究竟做错了什么? 这是nginxconfiguration
upstream ws.site.com { server 127.0.0.1:8080; } server { listen 443; server_name ws.site.com; ssl on; ssl_certificate /path/ssl-bundle.crt; ssl_certificate_key /path/myserver.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; location / { access_log off; proxy_pass https://ws.site.com; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_read_timeout 86400; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
wss:// URL处理程序使用WebSocket的默认端口,如果您不自己添加端口后缀,则为443。 如果你在一个非默认的(8080)上运行它,你需要端口后缀。