在配置有django,gunicorn,supervisor和nginx的这些服务器上运行非常高的流量.但很多时候我倾向于看到502错误.所以我检查了nginx日志以查看错误,这是记录的内容:
[error] 2388#0: *208027 connect() to unix:/tmp/gunicorn-ourapp.socket failed (11: Resource temporarily unavailable) while connecting to upstream
任何人都可以帮助调试可能导致这种情况发生的原因吗
这是我们的nginx配置:
sendfile on;
tcp_nopush on;
tcp_nodelay off;
listen 80 default_server;
server_name imp.ourapp.com;
access_log /mnt/ebs/nginx-log/ourapp-access.log;
error_log /mnt/ebs/nginx-log/ourapp-error.log;
charset utf-8;
keepalive_timeout 60;
client_max_body_size 8m;
gzip_types text/plain text/xml text/css application/javascript application/x-javascript application/json;
location / {
proxy_pass http://unix:/tmp/gunicorn-ourapp.socket;
proxy_pass_request_headers on;
proxy_read_timeout 600s;
proxy_connect_timeout 600s;
proxy_redirect http://localhost/ http://imp.ourapp.com/;
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header X-Forwarded-Proto $my_scheme;
#proxy_set_header X-Forwarded-Ssl $my_ssl;
}
我们已将Django配置为在Gunicorn中作为通用WSGI应用程序运行. Supervisord用于发射炮兵工人:
home/user/virtenv/bin/python2.7 /home/user/virtenv/bin/gunicorn –config /home/user/shared/etc/gunicorn.conf.py daggr.wsgi:application
这就是gunicorn.conf.py的样子:
import multiprocessing
bind = 'unix:/tmp/gunicorn-ourapp.socket'
workers = multiprocessing.cpu_count() * 3 + 1
timeout = 600
graceful_timeout = 40
有谁知道我可以从哪里开始挖掘,看看可能导致问题的原因是什么?
这是我的ulimit -a输出在服务器上的样子:
core file size (blocks,-c) 0
data seg size (kbytes,-d) unlimited
scheduling priority (-e) 0
file size (blocks,-f) unlimited
pending signals (-i) 59481
max locked memory (kbytes,-l) 64
max memory size (kbytes,-m) unlimited
open files (-n) 50000
pipe size (512 bytes,-p) 8
POSIX message queues (bytes,-q) 819200
real-time priority (-r) 0
stack size (kbytes,-s) 8192
cpu time (seconds,-t) unlimited
max user processes (-u) 1024
virtual memory (kbytes,-v) unlimited
file locks (-x) unlimited
最佳答案
我能够通过从128到20000编辑/ proc / sys / net / core / somaxconn来解决这个问题.这允许更大的流量突发.我可能没有必要将它设置得如此之高,但是这个应用程序可能会非常高.我也在使用gunicorn& nginx的.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。