如题
使用flask-socketio 写了一个简单的基于websocket 的聊天室,现在如果想要将其部署到nginx,配置文件应该怎么写?
只是单纯部署到nginx
很简单,就是在/etc/nginx/conf.d下新建一个配置文件。监听一个端口,然后将端口请求全部转发到你websocket监听的端口上就行。
##### # /etc/nginx/conf.d/socketio.conf ##### server { listen 8081; # 监听一个端口,供外部访问 location / { proxy_pass http://localhost:10086; # 将请求转发到本机10086端口 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; # websocket这两个选项 proxy_set_header Connection "upgrade"; # 需要明确的指定 }
比如说你机器ip是192.168.1.110。
本地socketio监听的端口是10086。
需要访问聊天室的时候,请求192.168.1.110:8081,nginx会将请求转发到10086端口。
这只是最简单基本的配置,能让你的服务运行,具体优化什么的还需要你再进一步设置。
可以看一下这篇文章
下面是我的配置 你可以参考一下
这是启动gunicorn 命令:
/root/.pyenv/versions/flask/bin/gunicorn -c webshell.conf socketio_run:app
这是 webshell.conf
workers = 1 bind = 'unix:/tmp/gunicorn.sock' pythonpath='/root/quleduo_manager_test/' worker_class='geventwebsocket.gunicorn.workers.GeventWebSocketWorker' threads=1 worker_connections=100 timeout=60 accesslog='/root/quleduo_manager_test/FileStores/log/gunicorn_access_test.log' errorlog='/root/quleduo_manager_test/FileStores/log/gunicorn_error_test.log'
这是nginx 配置:
upstream api { server unix:/tmp/gunicorn.sock } server { listen 80; charset utf-8; client_max_body_size 75M; access_log off; access_log /data/logs/salt_api.log combined; error_log /data/logs/salt_api.log; location / { proxy_pass https://api ; } }