为了账号安全,请及时绑定邮箱和手机立即绑定

flask-socketio 怎么部署到nginx?

flask-socketio 怎么部署到nginx?

手掌心 2018-10-03 13:11:58
如题使用flask-socketio 写了一个简单的基于websocket 的聊天室,现在如果想要将其部署到nginx,配置文件应该怎么写?
查看完整描述

2 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

只是单纯部署到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端口。

这只是最简单基本的配置,能让你的服务运行,具体优化什么的还需要你再进一步设置。

可以看一下这篇文章


查看完整回答
反对 回复 2018-10-21
?
GCT1015

TA贡献1827条经验 获得超4个赞

下面是我的配置 你可以参考一下
这是启动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 ;

        }

}


查看完整回答
反对 回复 2018-10-21
  • 2 回答
  • 0 关注
  • 1996 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信