最近在忙一个flask的web项目,使用socketio在搭配nginx部署的时候还有点麻烦,搜了一下中文的解释资料还是很少的,这里贴出来自己的配置。
我的项目环境是:python2.7 + flask + socketio + nginx + uWsgi ,操作系统是ubuntu 14.04
推荐阅读的文章,flask-socketio,Nginx as a WebSocket Proxy,相信这两篇文章认真读过以后,所有的问题应该迎刃而解了,后面的内容是写给不喜欢看英文文章的人,直接是干货,具体的每个配置项内容可以自行使用其他方式解读。
首先贴出来我的Nginx的配置:
server { listen 80; server_name localhost; location ^~ /static/ { root /root/myPython/website/blueprint; } location / { include proxy_params; proxy_pass http://127.0.0.1:6000; } location /socket.io { include uwsgi_params; proxy_http_version 1.1; proxy_buffering off; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_pass http://127.0.0.1:6000/socket.io; } location ~* . (woff|eot|ttf|svg|mp4|webm|jpg|jpeg|png|gif|ico|css|js)$ { expires 30d; } }
使配置生效的命令是:service nginx restart
接下来是使用uwsgi命令启动web程序:
uwsgi --http :6000 --gevent 1000 --http-websockets --master --wsgi-file __init__.py --callable app
如果没有安装gevent,使用 sudo pip install gevent安装即可。