默认情况下,连接将会在无数据传输60秒后关闭,proxy_read_timeout 参数可以延长这个时间或者源站通过定期发送ping帧以保持连接并确认连接是否还在使用.
Nginx会默认安装到/usr/local/nginx 目录下.
$ cd /usr/local/nginx/sbin $ ./nginx -c /usr/local/nginx/conf/nginx.conf
如果你想以Systemd服务的方式更方便的管理Nginx,可参考「基于Upsync模块实现Nginx动态配置」 一文.
上面的配置会使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站长网)
|