nginx 代理websocket 因为cookie过大连接失败
问题:前因是美文苑阅读网有开发即时聊天,经常一边开后台一边前端登陆退出多个账号!经常出现websocket链接不上!特此有空修复下!顺便记录下来有需要的避免踩坑。
原因:由于前端cookie都时经过加密。所以导致长度大小会很大。此时nginx代理。如果是跨域代理的话不会携带cookie,但是如果是同源代理的话会携带cookie。nginx默认请求头大小为1k ,此时因为cookie导致大小溢出,导致连接websocket 时会fail。
解决方案:
1、忽略cookie信息(因为连接websocket是不需要cookie的直接在反向代理那个网站的配置文件去屏蔽掉)
由于cookie信息后端时不用的。所以我选择了这个加到网站的NG配置文件里面。2、修改nginx请求头默认大小,这里是修改NGINX总配置文件综上所述,小编强烈建议第一种方法!修改网站的配置文件是非常的保险!即时出错删除就可以了!如果修改总的配置文件会让其他需要cookie的网站功能异常!
原因:由于前端cookie都时经过加密。所以导致长度大小会很大。此时nginx代理。如果是跨域代理的话不会携带cookie,但是如果是同源代理的话会携带cookie。nginx默认请求头大小为1k ,此时因为cookie导致大小溢出,导致连接websocket 时会fail。
解决方案:
1、忽略cookie信息(因为连接websocket是不需要cookie的直接在反向代理那个网站的配置文件去屏蔽掉)
由于cookie信息后端时不用的。所以我选择了这个加到网站的NG配置文件里面。
- proxy_set_header Cookie "la=1"; proxy_no_cache $cookie_nocache $arg_nocache$arg_comment;
- #client_header_buffer_size 8k; #large_client_header_buffers 4 32k;