首页 > 编程知识 正文

nginx配置websocket转发,websocket nginx代理

时间:2023-05-03 14:51:59 阅读:158935 作者:2990

如果WebScoket协议需要通过nginx代理,则可以通过在location节点中添加以下节点成功建立连接

#必须配置以下节点

proxy_http_version 1.1;

proxy _ set _ header upgrade $ http _ upgrade;

proxy _ set _ header connection ' upgrade ';

服务器{ listen 81; listen 553 server _ name *.domain.com; SSL _ certificates sl/*.domain.com.PEM; SSL _ certificate _ keyssl/*.domain.com.key; ssl_session_timeout 5m; SSL _ protocolstlsv1tlsv 1.1 tlsv 1.2; SSL _ ciphersecdhe-RSA-AE s128-GCM-sha 2563360 ECD he : ecdh : AES 3360 high : 空: 全部: MD5: ADH: RC4; ssl_prefer_server_ciphers on; location/{ proxy _ pass http://192.168.28.2243360702; #必须配置以下节点proxy_http_version 1.1 : proxy _ set _ header upgrade $ http _ upgrade; proxy _ set _ header connection ' upgrade '; }} proxy_http_version 1.1;

proxy _ set _ header upgrade $ http _ upgrade;

proxy _ set _ header connection ' upgrade ';

一个是启用HTTP 1.1。 默认情况下,Nginx到HTTP的反向代理使用HTTP 1.0连接到后端,因此无法保持长连接。 如果后端响应HTTP,则会断开连接,因此启用HTTP 1.1以支持长连接。

Upgrade和Connection,为什么要让Nginx加上这个请求头呢? 对于web套接字协议,客户端不是已经加上了Upgrade和Connection请求标头吗? 它根据HTTP协议规范,Upgrade和Connection属于hop-by-hop请求报头,而Nginx作为中间代理,不能根据规范直接传输hop-by-hop header

见: https://blog.csdn.net/Charles simonyi/article/details/90122916

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。