我想在nginx后面的uWSGI下运行Django app。我已经启动了2名uwsgi工作人员,但我注意到下一个悲伤的情况:当一名工人忙碌时,另一名工人只有在等待10-15秒后才开始处理请求。
配置非常简单。
uWSGI:uwsgi --socket 127.0.0.1:3031 --wsgi-file wsgi.py --master --processes 2 --threads 1
nginx的:
server {
listen 8000;
server_name example.org;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031;
}
}
和/etc/nginx/nginx.conf - 默认值
测试Django视图:
def test(request):
print('Start!!!')
time.sleep(9999)
print('End')
return HttpResponse()
并且wsgi.py具有默认的Django值。
因此,当我一起启动所有这些并发送2个GET请求时,我在控制台中只看到一个“开始!!!”并且仅在10-15秒之后出现第二个“开始!!!”。
我有没有nginx的同样奇怪的行为(使用uwsgi --http);每个工人有多个线程;没有“--master”uwsgi选项;没有django app;在Nginx负载均衡器后面有几个uwsgi实例。
其他信息:
uwsgi版本:2.0.12
nginx版本:1.4.6
主机操作系统:Ubuntu 14.04
Python版本:3.4
Django:1.9
CPU:4核