[机柜]WebSocket与Nginx的小秘密

来源: 作者: 发布时间:2022-02-03 10:19:01

方式nginx

一、代理服务器获取流量的方式

客户端通常直接与Web服务器通信。然后,当使用代理服务器作为客户端和服务器之间的 text-indent: 0;'>

修改DNS命名空间:在Web服务器之前的代理服务器和替代品将直接假装Web服务器的名称和IP地址

修改Web服务器:将Web服务器配置为向客户端发送HTTP重定向命令,并将客户端请求重定向代理服务器。

WebSocket与Nginx的小秘密

二、Nginx代理的方式

客户端与代理服务器建立连接并发送请求。接收客户端请求后,代理服务器与特定服务器建立连接,并将请求分发给服务器,最后将服务器响应结果反馈给客户端。

Nginx如何支持Websocketet?

Websocken是不同的协议,但它们是ldquo;握手 text-indent: 0;'>WebSocket与Nginx的小秘密

WebSocketetttp升级

因为Websocket协议是hop-by-hop协议(这种头部字段只对单次转发有效。它将因转发给缓存/代理服务器而失效)。为了让Nginx代理服务器将客户端的Upgrade请求发送到后端服务器,Upgrade和Conection的头部信息必须显式设置。这个问题可以通过修改Nginx的配置文件来解决。

WebSocket与Nginx的小秘密

代理服务器分别与客户端和服务器建立连接。由于Websocket连接长期保持,代理服务器需要允许这些连接打开,而不是像HTTP使用的短连接那样关闭。

四、Nginx配置Websocket方法

如下图所示,通过修改nginx.conf配置

WebSocket与Nginx的小秘密

1.mama端请求中根grt____________________________________________________________________________________________________

2.HTTP的Upgrade协议头机制用于将连接从HTTP连接升级为WebSocket连接,Upgrade机制使用Upgrade协议头和Conection协议头;Upgrade和Conection的头信息必须显式设置,以便Nginx能够将来自客户端的Upgrade请求发送到后端服务器。如上图所示。

五、总结

HttTTP升级机制将HTTP升级为Websocket。Nginx代理服务器通过修改配置解决了Websocket属于hop-by-hop协议的问题,并通过保持与客户端和服务端的连接,实现了websokcet的代理。