脚本宝典收集整理的这篇文章主要介绍了2021-10-29 利用nginx实现https的websocket转发,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
server {
# cloudflare始终使用https,因此80端口不需要再设置了
listen 443 ssl;
server_name mysite.com;
# 证书路径:
ssl_certificate /cert/mysite.com.pem;
ssl_certificate_key /cert/mysite.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.php index.html index.htm;
}
# 将https开头的 /api 路径转发到8080端口 ,
# 比如 https://mysite.com/api/getdata 将转为:http://127.0.0.1:8080/getdata
location ~ /api/(.*) {
proxy_pass http://127.0.0.1:8080/$1;
}
# 将https的 /websocket 转发到 http 的 8081
location /websocket {
proxy_pass http://127.0.0.1:8081/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
app.Run(iris.Addr("0.0.0.0:8080"))
Websocket这边是这样的:http.HandleFunc("/", ws) //ws是你的websocket处理函数
http.ListenAndServe("0.0.0.0:8081", nil)
func ws(w http.ResponseWriter, r *http.Request) {
...
}
axios.defaults.baseURL = 'https://mysite.com/api/'
在需要使用websockets的模块,是这样调用的:this.ws = new WebSocket('wss://rockage.net/websocket')
结语: 本方案比较简单,只是通过nginx将https请求映射成http而已,因此前后端程序无需做太多改动。
以上是脚本宝典为你收集整理的2021-10-29 利用nginx实现https的websocket转发全部内容,希望文章能够帮你解决2021-10-29 利用nginx实现https的websocket转发所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。