您的位置:首页 > 游戏 > 游戏 > websocket php workerman 服务器nginx配置wss协议

websocket php workerman 服务器nginx配置wss协议

2024/10/6 18:30:40 来源:https://blog.csdn.net/my_study_everyday/article/details/139537316  浏览:    关键词:websocket php workerman 服务器nginx配置wss协议

首先 Nginx的版本要高,尽量用当前最新稳定版本。

其次 WSS协议,是在HTTPS协议的基础上,进行协议升级,进行通讯的,所以先要保证你有一个
HTTPS正常的WEB站点。

所以,通过Nginx -V 请保证 一定有 --with-http_ssl_module --with-stream --with-stream_ssl_module 这三个模块。

好了,关键点:nginx.conf 配置修改

在 http{} 节点中,增加以下配置:

map $http_upgrade $connection_upgrade {default upgrade;'' close;
}upstream websocket {ip_hash;            server 127.0.0.1:2000;#换成具体的服务器对应的IP与端口
}

在这里插入图片描述

然后在具体的 监听有 443 ssl 的server{}节点中,增加以下配置 或者单独增加一个443 的Server{}节点也行

location /socket.io {proxy_pass http://websocket;#前面的upstream websocket对应proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_read_timeout 60s;#默认为60s proxy_send_timeout 60s;#默认为60sbreak;
}

在这里插入图片描述

假设当前域名为 https 😕/www.domain.com 则配置好后的wss地址为 wss://www.domain.com/socket.io

另外,如果是ajax请求wss,可能会有跨域问题,解决方案就是:
在配置有wss的Server{}节点中增加以下内容:

add_header ‘Access-Control-Allow-Origin’ ‘*’;
add_header ‘Access-Control-Allow-Headers’ ‘X-Requested-With’;
add_header ‘Access-Control-Allow-Methods’ ‘GET,POST’;

配置OK后,重启nginx 即可测试。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com