zoukankan      html  css  js  c++  java
  • nginx 502排错

    线上一台机器(该论坛所在机器)近期频繁出现502,每100次访问就会出现10次,这频率也太高了。于是开始了我的502排查之旅

    ps aux |grep -c php

    结果为200

    netstat -an |grep -c php

    结果一直在5以下,这说明php-cgi 的进程是绝对够用的。

    查看php-fpm.log

    tail -f  /usr/local/php/logs/php-fpm.log

    无有价值信息

    查看nginx错误日志

    tail -f /usr/local/nginx/logs/error.log

    无有价值信息

    感觉问题可能出在了nginx的配置上,于是网上找关于nginx.conf 的配置说明,改来改去始终解决不了这难缠的502。(该过程前后延续一周之多,改了N多个参数,因为没有价值,所以我不再详细记录,在这里简单一笔带过。)

    几天过后,突然灵机一动,nginx的错误日志既然不报错,那说明定义的日志级别没有达到要报错的要求,于是找资料修改nginx错误日志级别为error(默认为crit) 
    请参考http://mylinux.5d6d.net/thread-1289-1-1.html
    终于发现有价值的信息:

    connect() to unix:/tmp/php-fpm.socket failed (11: Resource temporarily unavailable) while connecting to upstream

    google了一番,马上就找到了解决问题的方法:

    修改php-fpm.conf

    <value name="backlog">-1</value>

    改成:

    <value name="backlog">1024</value>

    这是因为,php-fpm 在 backlog 设置为 -1 的情况下,表示backlog数无限制,由操作系统决定,而操作系统是由内核参数net.core.somaxconn 决定,我的操作系统该参数的值设置的很大为262144。该参数的值默认为128,我想设置成262144肯定是不合理的。所以,我又试验了一下。
    不修改php-fpm.conf ,即backlog的值为-1, 然后把net.core.somaxconn修改为默认值128 ,此时也没有再出现502

    本文引用:http://www.360doc.com/content/15/0923/13/27889159_501013998.shtml

  • 相关阅读:
    ACM的算法分类 2015-04-16 14:25 22人阅读 评论(0) 收藏
    初学Larevel 2014-08-21 11:24 90人阅读 评论(0) 收藏
    初学PHP&MySQL 2014-05-31 12:40 92人阅读 评论(0) 收藏
    codeforces 570 E. Pig and Palindromes (dp)
    codeforces 570 D. Tree Requests (dfs序)
    poj 2157 Maze (bfs)
    cf 570 C. Replacement (暴力)
    cf 570B B. Simple Game(构造)
    cf 570 A. Elections
    hdu 1429胜利大逃亡(续) (bfs+状态压缩)
  • 原文地址:https://www.cnblogs.com/phpfans/p/4832048.html
Copyright © 2011-2022 走看看