WebSocket与Nginx的小秘密
WebSocket与Nginx的小秘密
方式nginx
一、代理服务器获取流量的方式
客户端通常直接与Web服务器通信。然后,当使用代理服务器作为客户端和服务器之间的 text-indent: 0;'>
修改DNS命名空间:在Web服务器之前的代理服务器和替代品将直接假装Web服务器的名称和IP地址
修改Web服务器:将Web服务器配置为向客户端发送HTTP重定向命令,并将客户端请求重定向代理服务器。
二、Nginx代理的方式
客户端与代理服务器建立连接并发送请求。接收客户端请求后,代理服务器与特定服务器建立连接,并将请求分发给服务器,最后将服务器响应结果反馈给客户端。
Nginx如何支持Websocketet?
Websocken是不同的协议,但它们是ldquo;握手 text-indent: 0;'>
WebSocketetttp升级
因为Websocket协议是hop-by-hop协议(这种头部字段只对单次转发有效。它将因转发给缓存/代理服务器而失效)。为了让Nginx代理服务器将客户端的Upgrade请求发送到后端服务器,Upgrade和Conection的头部信息必须显式设置。这个问题可以通过修改Nginx的配置文件来解决。
代理服务器分别与客户端和服务器建立连接。由于Websocket连接长期保持,代理服务器需要允许这些连接打开,而不是像HTTP使用的短连接那样关闭。
四、Nginx配置Websocket方法
如下图所示,通过修改nginx.conf配置
1.mama端请求中根grt____________________________________________________________________________________________________
2.HTTP的Upgrade协议头机制用于将连接从HTTP连接升级为WebSocket连接,Upgrade机制使用Upgrade协议头和Conection协议头;Upgrade和Conection的头信息必须显式设置,以便Nginx能够将来自客户端的Upgrade请求发送到后端服务器。如上图所示。
五、总结
HttTTP升级机制将HTTP升级为Websocket。Nginx代理服务器通过修改配置解决了Websocket属于hop-by-hop协议的问题,并通过保持与客户端和服务端的连接,实现了websokcet的代理。