django2.2 python3.6 nginx 时不时的出现下面错误,网站很卡,然后就 出现: 502 Bad Gateway 然后自已又变好了。速度快起来 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
python30
V2EX    Python

django2.2 python3.6 nginx 时不时的出现下面错误,网站很卡,然后就 出现: 502 Bad Gateway 然后自已又变好了。速度快起来

  •  
  •   python30 2020-03-21 00:20:46 +08:00 3358 次点击
    这是一个创建于 2030 天前的主题,其中的信息可能已经有所发展或是发生改变。
    绑名的域名:
    gq.xxbbbb.com www.xxbbbb.com

    django2.2 python3.6 nginx

    不知道什么原因
    时不时的出现下面错误,网站很卡,然后就 出现:502 Bad Gateway 然后自已又变好了。速度快起来



    日志:
    2020/03/21 00:03:53 [error] 1084#0: *7404 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 66.249.71.49, server: gq.xxbbbb.com, request: "GET /company/13864311189/ HTTP/1.1", upstream: "uwsgi://127.0.0.1:92001", host: "www.xxbbbb.com"
    2020/03/21 00:03:56 [error] 1085#0: *7374 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 157.55.39.81, server: gq.xxbbbb.com, request: "GET /class/info/11329 HTTP/1.1", upstream: "uwsgi://127.0.0.1:92001", host: "www.xxbbbb.com"
    2020/03/21 00:04:07 [error] 1084#0: *7407 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 123.169.102.171, server: gq.xxbbbb.com, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://127.0.0.1:92001", host: "www.xxbbbb.com", referrer: "https://www.xxbbbb.com/m/tags/xxx/"
    2020/03/21 00:04:20 [error] 1084#0: *7461 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 203.208.60.76, server: gq.xxbbbb.com, request: "GET /class/info/4205 HTTP/1.1", upstream: "uwsgi://127.0.0.1:92001", host: "gq.xxbbbb.com"
    2020/03/21 00:04:25 [error] 1084#0: *7416 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 103.14.35.86, server: gq.xxbbbb.com, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://127.0.0.1:92001", host: "www.xxbbbb.com", referrer: "https://www.xxbbbb.com/"


    是人数一多了。超时了?
    12 条回复    2020-05-19 17:04:48 +08:00
    a719114136 div class="fr">     1
    a719114136  
       2020-03-21 01:33:22 +08:00 via Android
    从现象来看很可能是并发太高了,一般是 uwsgi 超时了。

    最好改用 gunicorn,uwsgi 配置太复杂了,一堆配置不知道改哪个。
    jenlors
        2
    jenlors  
       2020-03-21 09:33:20 +08:00 via Android
    nginx 配置,系统参数,uwsgi 都可以针对高并发调优。
    676529483
        3
    676529483  
       2020-03-21 09:33:22 +08:00
    502 超时了,看看是不是有接口速度太慢影响了,或者也可以看下是不是带宽满了
    python30
        4
    python30  
    OP
       2020-03-21 11:22:46 +08:00
    确实是人数一多就这样卡住了
    但是配配是 2 核 4G 3M 的
    不应该是带宽问题
    因为 1 分钟最大同时在线才 18 人就卡住了

    下面是我的配置参数,刚从网上看了教程改的
    不知道还有需要优化或有错的地方不?

    centos7.5 python3.6 django2.2



    ps: 在卡住的那个时间点我看了一下日志
    还有少少百度蜘蛛来网站!难道这个也有关系?

    uwsgi.conf
    ```
    # myweb_uwsgi.ini file
    [uwsgi]

    #django-related settings
    socket = 127.0.0.1:8001
    # the base directory (full path)
    chdir = /var/www/website

    # Django s wsgi file
    module = website.wsgi:application

    env = DJANGO_SETTINGS_MODULE = website.settings
    daemOnize= /var/log/nginx/website_access.log;
    # process-related settings
    # master
    master = true
    py-autoreload = 1

    # maximum number of worker processes
    processes = 4
    threads = 2
    # ... with appropriate permissions - may be needed
    # chmod-socket = 664
    # clear environment on exit
    vacuum = true
    ```




    nginx.conf

    ```
    user nginx;
    worker_processes 4;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;

    include /usr/share/nginx/modules/*.conf;
    worker_rlimit_nofile 65535;
    events {
    use epoll;
    worker_connections 20000;
    }

    http {
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log main;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 60;
    client_header_buffer_size 4k;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    include /etc/nginx/conf.d/*.conf;

    server {
    listen 443;
    server_name website.com;
    ssl on;
    ssl_certificate 1_www.website.com_bundle.crt;
    ssl_certificate_key 2_www.website.com.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    charset UTF-8;
    access_log /var/log/nginx/website_access.log;
    error_log /var/log/nginx/website_error.log;

    client_max_body_size 75M;
    fastcgi_buffers 8 128k;
    fastcgi_busy_buffers_size 128k;


    location / {
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:8001;
    uwsgi_send_timeout 300;
    uwsgi_connect_timeout 300;
    uwsgi_read_timeout 300;
    }
    location /static {
    expires 30d;
    autoindex on;
    #return 403;
    add_header Cache-Control private;
    alias /var/wwwr/website/static/;
    }
    location /media {
    expires 30d;
    autoindex on;
    #return 403;
    add_header Cache-Control private;
    alias /var/wwwr/website/media/;
    }
    }
    ```
    lance86
        5
    lance86  
       2020-03-21 11:41:28 +08:00
    没有用过 uwsgi,不过你试试把 uwsgi 配置中的 theads 调大一些?
    奇怪的是你 nginx 上配置的 timeout 是 300s 啊,你也试试在 django 里把把个请求的花费时间给记录一下,主要看下有没有卡住。
    顺便可以在 nginx 的 log 格式中加上$upstream_response_time,作为参考,可以看看是不是卡住之前,response time 都变长了。
    python30
        6
    python30  
    OP
       2020-03-21 12:00:41 +08:00
    @lance86 我把 theads 设成了 4 了 感觉 4-10 都可以。

    上面的是我修改后的配置
    修改后现在网站上没人在线
    也不知道这配置起作用不
    xpresslink
        7
    xpresslink  
       2020-03-21 14:30:04 +08:00
    上 gevent 啊,这种情况虽然不能提高性能,但是能拖住更多连接。
    uwsgi.conf
    加一行

    # 使用 gevet 异步 loop
    gevent=128

    然后$ source venv/bin/activiate;pip install gevent
    hushao
        8
    hushao  
       2020-03-21 21:32:29 +08:00 via iPhone
    会不会是数据库问题?我之前貌似碰到过数据库导致此类问题。只是提供一种参考
    python30
        9
    python30  
    OP
       2020-03-21 21:45:57 +08:00
    @xpresslink
    谢谢
    今天一直没出现这问题
    明天在线人数多的时候出现这问题。我再修改
    python30
        10
    python30  
    OP
       2020-03-21 21:47:00 +08:00
    @hushao
    能详细说说吗?
    还真有可能是这事
    我刚从 mysql5.6 mysqldump 备份
    直接导入到 mysql5.7 里面!
    你当时是怎么解决的?
    python30
        11
    python30  
    OP
       2020-03-23 11:12:55 +08:00
    @hushao 又出现这个问题了
    请问一下,你当时是怎么处理的你的数据库?
    Skyline57
        12
    Skyline57  
       2020-05-19 17:04:48 +08:00
    看看系统占用?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     977 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 19:16 PVG 03:16 LAX 12:16 JFK 15:16
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86