搜索
简帛阁>技术文章>Nginx配置WebSocket【this request has been blocked; this endpoint must be available over WSS.】

Nginx配置WebSocket【this request has been blocked; this endpoint must be available over WSS.】

一、对wss与nginx代理wss的理解:

 1、wss协议实际是websocket+SSL,就是在websocket协议上加入SSL层,类似https(http+SSL)。

 2、利用nginx代理wss【通讯原理及流程】

   (1)、客户端发起wss连接连到nginx

   (2)、nginx将wss协议的数据转换成ws协议数据并转发到Workerman的websocket协议端口

   (3)、Workerman收到数据后做业务逻辑处理

   (4)、Workerman给客户端发送消息时,则是相反的过程,数据经过nginx/转换成wss协议然后发给客户端
         

二、Nginx配置ssl和wss

Nginx配置文件

map $http_upgrade $connection_upgrade {<!-- -->
    		default upgrade;
    		'webscoket' upgrade;
   	}  #这一部分配置是我解决这个问题的最关键部分!!!
server
{<!-- -->
    listen 80; #http请求
	listen 443 ssl http2;  #https请求
    server_name **.admin.bdlhcloud.com;  #域名
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/*.admin.bdlhcloud.com;
    
    ssl_certificate    /www/server/panel/vhost/cert/*.admin.bdlhcloud.com/*.pem;   #SSL证书
    ssl_certificate_key    /www/server/panel/vhost/cert/*.admin.bdlhcloud.com/*.key;   #SSL证书
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;

location /websocket {<!-- -->
      proxy_pass http://服务器ip:端口;  #切记!!开放端口!!
       proxy_http_version 1.1;
       proxy_set_header   Upgrade             $http_upgrade;
       proxy_set_header   Connection  "Upgrade";
       proxy_set_header   X-Real-IP        $remote_addr;
	}

}

         

三、Nginx配置文件添加SSL证书

         

四、通过wss和ws连接websocket

 1、wss连接:

   前端访问地址:wss://*.admin.bdlhcloud.com/websocket
 2、ws连接:

   前端访问地址:ws://*.admin.bdlhcloud.com/websocket

参考文档:

https://blog.csdn.net/qq_35808136/article/details/89677749

一、对wssnginx代理wss的理解:1、wss协议实际是websocket+SSL,就是在websocket协议上加入SSL层,类似https(http+SSL)。2、利用nginx代理wss
问题:网页有时访问https网站,由于网站中一些资源是http的,网页执行会报错“Thisrequesthasbeenblocked;thecontentmustbeservedoverHTTPS”,
在升级https的过程中,出现如下问题:MixedContent:Thepageat'https://wwwxxxcom/dengluhtml'wasloadedoverHTTPS,butreques
1Nginx配置配置如下修改即可server{location/{add_headerContentSecurityPolicyupgradeinsecurerequests;}}https://b
重启tomcat的时候出错Illegalaccess:thiswebapplicationinstancehasbeenstoppedalreadyCouldnotloadoraclenetmesgM
centos73启动tomcat出现错误:八月08,20174:58:47下午orgapachecatalinacoreStandardEnginestartInternal信息:StartingSe
在android中使用mmm命令编译程序是出现错误。这种问题一般情况是因为在res/xml文件夹下的中,或者在res/layout下的文件中出现了没有多语言话的文本例解决方法:不直接在布局文件中写字符
目录前言一Nginx安装1下载Nginx2安装依赖3编译安装Nginx二SSL配置WSS配置前言近期,由于要发布微信小程序,小程序的发布必须使用已备案的服务器域名及https的请求方式,之前已经备案
今天在调试一个小web项目时,验证码不显示了,而且后台报错getOutputStream()hasalreadybeencalledforthisresponse经过查找得知:在tomcat60下js
1问题描述:在导出数据库某时间段的数据,然后获得Excel,虽然页面可以顺利导出,但后台报错如下:(虽然不影响导出效果,但看到后台的异常,内心还是不舒服的)严重:Servletservice()for