我有一个 ws 项目,地址在 ws://localhost:9999
现在我需要使用 nginx 将它转发到 wss://kylebing.cn/ws 上
假设你已经使用 nginx 配置好了 https,也就是我的情况,来说一下如何转发 ws 到 wss
我服务器的 nginx 配置有两个文件 default.conf 和 https.conf,配置 https.conf 文件,添加如下内容,在 server 的外层添加
map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream ws_server { server localhost:9999; }
在 443 的内层添加 location /ws 这个内容
server { listen 443 ssl; server_name kylebing.cn; # 此处省略其它一些配置... location /ws { proxy_pass http://ws_server; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
这样重启服务,就能转发 ws://kylebing.cn:9999 的服务到 wss://kylebing.cn/ws 了