我使用mod_wsgi使这个Flask应用程序在Apache之上运行。
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
我发现了问题:限制不在服务器端。我正在使用Chrome进行测试,每个主机名最多只能有6个连接。