带gevent multi的Flask

2024-05-23 17:48:14 发布

您现在位置:Python中文网/ 问答频道 /正文

使用gevent后端服务器运行flask应用程序并利用所有处理器内核的明确方法是什么?我想运行flask应用程序的多个副本,其中gevent WSGIServer在diapason 5000..5003(用于4个进程)中监听一个端口,nginx作为负载平衡器。在

但我不确定这种方式是否是最好的,也许还有其他方法可以做到。例如,主进程监听一个端口,工人处理传入连接。在


Tags: 方法端口服务器应用程序利用flask进程方式
1条回答
网友
1楼 · 发布于 2024-05-23 17:48:14

我来试试!在

Nginx!在

服务器部分:

location / {
    include proxy_params;
    proxy_pass http://127.0.0.1:5000;
}

烧瓶应用程序

这是一个简单的flask应用程序,我将在这个例子中使用。在

在我的app.py公司名称:

^{pr2}$

乌兹基

好吧,我知道你说过你想使用gevent,但是如果你愿意在这个问题上妥协一点,我想你会对这个设置非常满意的。在

[uwsgi]
    master = true
    plugin = python
    http-socket = 127.0.0.1:5000
    workers = 4
    wsgi-file = myapp.py
    callable = app

古尼科恩

如果你必须有gevent你可能会喜欢这个小设置

在配置.py公司名称:

import multiprocessing

workers = multiprocessing.cpu_count()
bind = "127.0.0.1:5000"
worker_class = 'gevent'
worker_connections = 30

然后您可以运行:

gunicorn -c config.py myapp:app

是的,每个cpu有一个worker,每个worker有30个连接。在

看看这对你是否有用。在

如果你真的喜欢使用nginx作为负载平衡器,那么可以在http部分尝试类似的方法

upstream backend {
    server 127.0.0.1:5000;
    server 127.0.0.1:5002;
    server 127.0.0.1:5003;
    server 127.0.0.1:5004;
} 

然后是服务器部分的其中一个

location / {
    include proxy_params;
    proxy_pass http://backend;
}

祝你好运,伙计!在

相关问题 更多 >