python - flask-socketio 怎么部署到nginx?
高洛峰
高洛峰 2017-04-18 10:04:00
[Python讨论组]

如题
使用flask-socketio 写了一个简单的基于websocket 的聊天室,现在如果想要将其部署到nginx,配置文件应该怎么写?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
黄舟

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

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

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

可以看一下这篇文章

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号