0%

WebSocket over Nginx

WebSocket让我们体验到了别样的http,最近小研究了一下。如何讲websocket app如何部署,从而开放给用户使用,是这篇文章将要主要描述的内容。本人对Nginx一直很钟情,所以下面将描述一下nginx上的websocket配置。

1.首先,检查你的nginx版本,nginx -v 如果是1.4以下,不好意思,快去update吧,否则是无法顺利支持websocket的。

2.基础配置其实很简单,下面是我的一个chat app的配置,首先配置一个upstream,然后在具体的server localtion中把代理配好就可以了。nginx的另外一个优势就是强大的proxy,websocket app一般都工作在非80端口,用上这个proxy就可以将应用和你的网站融为一体了。

upstream lab_chat {
server 127.0.0.1:8080; # your websocket app here
}

location ~ /wschat/ {
proxy_pass http://test_chat;#必须
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;#必须
proxy_set_header Upgrade $http_upgrade;#必须
proxy_set_header Connection "upgrade";#必须
proxy_send_timeout 1h;#send 超时时间 记得一定要按需配置这个 否则默认60s就断开了
proxy_read_timeout 1h;#read 超时时间
}

3.参考文献&更多高级配置
http://blog.martinfjordvald.com/2013/02/websockets-in-nginx/
http://siriux.net/2013/06/nginx-and-websockets/