javascript – 为什么使用nginx作为websocket代理?

所以我一直在阅读整个服务器设置,其中Nginx在nodejs前面用作反向代理,以便它提供静态内容,同时允许节点执行动态内容.我的问题是,为什么有人想使用Nginx前端来反向代理到websocket?如果Nginx提供静态内容(HTML,CSS,JS,媒体等),则服务的JS文件不能直接使用ipocket地址和websocket在nodejs中侦听的端口直接连接到服务器服务器?为什么要通过Nginx连接到服务器上的websocket?或者我不明白这种情况?谢谢!

解决方法:

WebSocket应用程序在客户端和服务器之间保持长时间运行的连接,从而促进实时应用程序的开发.用于将连接从HTTP升级到WebSocket的HTTP升级机制使用升级和连接标头.逆向代理服务器在支持WebSocket时面临一些挑战.一个是WebSocket是逐跳协议,因此当代理服务器拦截来自客户端的升级请求时,它需要将自己的升级请求发送到后端服务器,包括适当的头.此外,由于WebSocket连接是长期存在的,与HTTP使用的典型短期连接相反,反向代理需要允许这些连接保持打开,而不是关闭它们,因为它们似乎是空闲的.

Nginx支持WebSocket,允许在客户端和后端服务器之间建立隧道.要使Nginx升级请求从客户端发送到后端服务器,必须明确设置升级和连接标头,如下例所示:

location /wsapp/ {
    proxy_pass http://wsbackend;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

完成此操作后,Nginx将此作为WebSocket连接处理.

欲了解更多详情,请访问: –
https://www.nginx.com/blog/websocket-nginx/
https://blog.martinfjordvald.com/2013/02/websockets-in-nginx/

希望这会有所帮助!

相关文章

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一...
本地项目配置 1 复制 luffy/settings/dev.py为prop.py 修改l...
nginx不仅可以隐藏版本信息,还支持自定义web服务器信息 先看...
一 、此次漏洞分析 1 nginx HTTP/2漏洞 [nginx-announce] ng...
###进入nginx 目录cd /usr/local/nginx###递归显示 2 级目录...
在cmd命令窗口输入下面命令进行查看 tasklist /fi "ima...