【发布时间】:2019-11-30 12:59:10
【问题描述】:
我使用 mod_wsgi 在 Apache 上运行了这个 Flask 应用程序。
from flask import Flask
app = Flask(__name__)
@app.route('/<int:a>')
def mytest(a):
print('starting test:', a)
import time
time.sleep(60)
print('ending test:', a)
return 'done'
(这是一个 MWE。)
当用户访问 URL /<int> 时,它会执行一分钟的低强度任务,然后返回。
然后我打开 7 个选项卡,每个选项卡都位于不同的 URL /1、/2、...、/7。当我收听正在发生的事情 (sudo tail -f /var/log/apache2/error.log) 时,我看到以下消息:
开始测试:1
开始测试:2
开始测试:3
开始测试:4
开始测试:5
开始测试:6
结束测试:1
开始测试:7
...
显然,它只支持最多6个并发请求。如何增加这个限制?
我正在使用 Ubuntu 18.04 附带的 Apache2 的默认选项,并使用 mod_wsgi 的默认选项。我已经通过/etc/apache2/apache2.conf 并看到没有 6 个限制。我的 .wsgi 文件配置为:
WSGIDaemonProcess app user=rpcruz group=app home=/var/www/app processes=25 restart-interval=86400 graceful-timeout=3600
【问题讨论】: