nginx ws怎么变成wss

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx ws怎么变成wss相关的知识,希望对你有一定的参考价值。

nginx版本使用最新Stable版本,如果是旧版本,查询一下是否支持websocket代理。

WS普通Websocket代理,WSS是Https格式的。下面示例。表示两者都可以使用。如果强制WSS,可以在Location之前加一下Rewrite。

比如:

rewrite ^(.*)$  https://$host$1 permanent;

里面模拟的是用户访问一台Nginx服务器,Nginx代理后面一台真实服务器。
如果只是一台机器上设置也是类似的。
此外里面的域名和端口和证书,日志名称之类的根据自己的情况来定。

这个文件保存成一个name.conf在Nginx.conf中include即可。

upstream yourserver 
        ip_hash;
        server 172.16.10.10 weight=1 max_fails=2 fail_timeout=2;
        
 
 
server 
        listen       80;
        listen       443;
        server_name yoursever.domain.com;
        ssl     on;
        ssl_certificate      /etc/ssl/certs/yourname.crt;
        ssl_certificate_key  /etc/ssl/certs/yourname.key;
 
        ssl_session_timeout  5m;
        ssl_session_cache shared:SSL:50m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2  SSLv2 SSLv3;
        ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers   on;
 
    
         proxy_pass http://yourserver;
         proxy_redirect off;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_read_timeout 3600s;
         proxy_send_timeout 3600s;
         proxy_http_version 1.1;
         proxy_set_header Upgrade $http_upgrade;
         proxy_set_header Connection "upgrade";
         access_log /var/log/nginx/yourserver.log main;
 
        

参考技术A 只需要像https那样配置,开启443端口的监听以及ssl
配置好证书即可
wss就是ws的安全版,经过了一层加密,后端运行的程序不需要改动,经过nginx后,数据已经被解密了本回答被提问者和网友采纳

宝塔中的nginx配置websocket,采用ws/wss方式配置

项目描述

项目直接用了宝塔家的nginx,做的反向代理,后来有了websocket的配置需求,经过一番探索,得以解决,记录备忘。

Nginx自定义路径的方式

网站——设置——配置文件

![在这里插入图片描述](https://img-blog.csdnimg.cn/3d5d89ee1bc84c53b621d84c1712a155.png

server

    listen 80;
	listen 443 ssl http2;
	......
	......
    #SSL-END
	##访问域名wss://doc.mate.vip/wss  即可
    location /wss 
          proxy_pass http://127.0.0.1:50001; ##代理到上面的ip
          proxy_connect_timeout 30s;
          proxy_read_timeout 86400s;
          proxy_send_timeout  30s;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "Upgrade";
	
	......
	......

访问地址示例:https://doc.mate.vip/wss

Nginx反向代理的方式


配置代码

#持久化连接配置
proxy_connect_timeout 30s;
proxy_read_timeout 86400s;
proxy_send_timeout  30s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

这时候就可以使用websocket愉快地畅游了。

友情提醒

宝塔面板里——安全设置需要把相关端口放行
另外如果阿里云的ecs也需要进行放行操作

微服务项目

https://gitee.com/matevip/matecloud

以上是关于nginx ws怎么变成wss的主要内容,如果未能解决你的问题,请参考以下文章

系统是用安全证书nginx访问的,别人现在想用ws访问系统接口,访问不到怎么办

nginx 配置转发ws协议

nginx监控ws延迟

Pydio Cells docker + NGINX = /ws/chat 和 /ws/event 上的 404 错误

nginx 限制目录访问为403,允许其它访问ip访问怎么变成404

如何在 nginx nodejs 服务器上配置“ws”websocket?