首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >nginx反向代理wss无法成功升级websocket是怎么回事?

nginx反向代理wss无法成功升级websocket是怎么回事?

提问于 2020-12-09 11:24:18
回答 1关注 0查看 1.8K

使用nginx进行websocket的ws和wss的反向代理

代理是成功的, 但是并没有成功的升级成 websocket 长连接

客户端进行握手的时候,上游服务器返回的数据nginx没有通过长连接实时返回给客户端,而是在上游服务器关闭连接或者超时后,nginx才将数据返回给客户端。

nginx版本1.18.0 -------- 这是nginx代理ws和wss的配置

代码语言:javascript
复制
http 
{
#include      /nginx/conf/naxsi_core.rules;
include       mime.types;
default_type  application/octet-stream;

#access_log  logs/access.log  main;
access_log  off;

map $http_upgrade $connection_upgrade {
	default upgrade;
	'' close;
}
upstream websocket {
	server 192.168.1.58:13527;
	keepalive 512;
}
server {
	listen 80;
	listen 443;
	server_name wss.com;
	
	charset utf-8;

	ssl	on;  # 启用ssl功能
	ssl_certificate		/test/test.crt;
	ssl_certificate_key /test/test.key;
	
	ssl_session_timeout 5m;
	ssl_session_cache shared:SSL:50m;
	ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
	ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
	ssl_prefer_server_ciphers on;
	ssl_verify_client off;
	add_header Cache-Control no-store;
	
	keepalive_timeout 3600s;
	keepalive_requests 10000000;
		
	proxy_http_version 1.1;
	
	if ($request_method = 'OPTIONS') {
		return 204;
	}
	
	location /wss 
	{
		proxy_redirect off;
		
		proxy_set_header Host $host:$server_port;
		proxy_set_header X-Real_IP $remote_addr;
		proxy_set_header X-Forwarded-For $remote_addr:$remote_port;
		proxy_set_header X-Forwarded-Host $Server_name;
		proxy_set_header X-NginX-Proxy true;
		
		proxy_connect_timeout 12000s;
		proxy_read_timeout 36000s;
		proxy_send_timeout 36000s;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection $connection_upgrade;
		
		# proxy_buffering off;
		
		proxy_pass http://websocket/;
	}

  }


}

nginx的error.log里面提示:

代码语言:javascript
复制
2020/12/09 10:24:43 [error] 8048#8724: *5 upstream sent no valid HTTP/1.0 header while reading response header from upstream, client: 192.168.1.58, server: wss.com, request: "GET /wss HTTP/1.1", upstream: "http://192.168.1.58:13527/", host: "wss.com"

image.png
image.png

被这个问题弄得头都大了,没有有人遇到过这个问题呢,是怎么决绝的啊

相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档