设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 安全 > 正文

配置Nginx反向代理WebSocket(2)

发布时间:2021-01-16 12:36 所属栏目:53 来源:网络整理
导读:默认情况下,连接将会在无数据传输60秒后关闭, proxy_read_timeout 参数可以延长这个时间或者源站通过定期发送ping帧以保持连接并确认连接是否还在使用. 启动Nginx Nginx会默认安装到 /usr/local/nginx 目录下. $ cd

默认情况下,连接将会在无数据传输60秒后关闭,proxy_read_timeout参数可以延长这个时间或者源站通过定期发送ping帧以保持连接并确认连接是否还在使用.

  • 启动Nginx

Nginx会默认安装到/usr/local/nginx目录下.

$ cd /usr/local/nginx/sbin $ ./nginx -c /usr/local/nginx/conf/nginx.conf

如果你想以Systemd服务的方式更方便的管理Nginx,可参考「基于Upsync模块实现Nginx动态配置」 一文.

  • 测试通过Nginx访问WebSocket服务

上面的配置会使NGINX监听80端口,并把接收到的任何请求传递给后端的WebSocket服务器.我们可以使用wscat作为客户端来测试一下:

$ cd /root/node_modules/wscat/bin/ $ ./wscat –connect ws://192.168.2.210 connected (press CTRL+C to quit) > Hello Nginx < Server received from client: Hello Nginx > Welcome to www.hi-linux.com < Server received from client: Welcome to www.hi-linux.com

  • 反向代理服务器在支持WebSocket时面临的挑战

WebSocket是端对端的,所以当一个代理服务器从客户端拦截一个Upgrade请求,它需要去发送它自己的Upgrade请求到后端服务器,也包括合适的头.

因为WebSocket是一个长连接,不像HTTP那样是典型的短连接,所以反向代理服务器需要允许连接保持着打开,而不是在它们看起来空闲时就将它们关闭.

参考文档

http://www.google.com
http://t.cn/RaTxJl9
https://github.com/animetosho/Nyuu/issues/14
https://www.nginx.com/blog/websocket-nginx/
https://www.starduster.me/2016/08/23/brief-talk-of-websocket/

文章来自微信公众号:运维之美

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读