由于某种原因,每当处理长时间运行的请求(5 分钟)时,nginx 都会在一段时间(2 分钟)后停止任何新请求。
user www-data www-data;
worker_processes 4;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 200;
client_max_body_size 12M;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 9;
gzip_buffers 16 8k;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
include /usr/local/nginx/sites/*.conf;
}
这可能是由于 uwsgi 设置导致的问题吗?
[uwsgi]
module=project.wsgi_de:application
socket=127.0.0.1:...
chdir=/var/www/...
pidfile=/tmp/project-master.pid
max-requests=5000
limit-as=1024
master=True
vacuum=True
processes=5
答案1
如果你达到 5 个并发的长时间运行请求,这是预期的行为,因为 uWSGI 正在运行 5 个进程