Nginx反向代理实现wss访问的配置过程以及nginx配置wss时出现404的解决方法

Websocket使用 ws 或 wss 的统一资源标志符,类似于 HTTP 或 HTTPS ,区别在于使用的是不同的通信协议。WSS是WebSocket的加密版本,需要SSL证书,是安全的,而WS没有SSL证书,是非安全的。并且使用https必须开通443端口(默认是关闭的)。

1.nginx.conf文件配置

	server {
		listen 443 ssl;  #1.端口号443。如未添加ssl,可能会造成Nginx无法执行。
		server_name 服务器域名;  #2.将服务器域名处修改自己定的域名,例如:www.baidu.com。
		root html;
		index index.html index.htm;
		ssl_certificate cert/SSL.pem;    #3.SSL.pem替换成自己的SSL的文件名。
		ssl_certificate_key cert/SSL.key; #4.SSL.key替换成自己的SSL的文件名
		ssl_session_timeout 5m;
		ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  
		ssl_prefer_server_ciphers on;   
		location / {
			root html;   
			index index.html index.htm;   
		}
		#5.配置wss接口
		location /webSocketServer  {
			proxy_pass http://localhost:8088; 
			proxy_http_version 1.1;  
			proxy_set_header Upgrade $http_upgrade;  
			proxy_set_header Connection "Upgrade"; 
			proxy_read_timeout 600s;                 
                }
	}
}

2.在js连接Websocket服务

   websocket = new WebSocket("wss://域名/webSocketServer");

3.nginx配置wss时出现404的可能会出现的问题及解决方法
我本人出现的404问题点:nginx之前的没有关闭,nginx启动了多个,导致我后面修改的nginx.conf文件重启时,都是重启了最开始的nginx,所以我修改的nginx并没有重启。
解决方法:
①先查看nginx是否启动多个,tasklist | findstr “nginx”
②启动多个nginx的话,就先将nginx全部关闭后,再重启启动nginx即可。

你可能感兴趣的:(nginx,https,ssl)