• Nginx频繁出现500错误的解决方案


    转自:http://yubosun.akhtm.com/tech/nginx-500.htm
      有一台服务器某天因为促销活动导致访问量激增,频繁报“500 Internal Server Error”错误。我查了一下nginx的错误日志(apt-get方式安装的nginx的错误日志在/var/log/nginx/error.log),发现了大量的“[alert] xxxxx#0: accept() failed (24: Too many open files)” 

    我上网查了一下,说这是超过了最大打开文件数的限制。 

    解决方法是: 

    1 打开/etc/security/limits.conf文件,加上两句 

    * soft nofile 65535 
    * hard nofile 65535 

    2 打开/etc/nginx/nginx.conf 
    在worker_processes的下面增加一行 
    worker_rlimit_nofile 65535; 

    3 重新启动nginx,重新载入设置 
    kill -9 `ps -ef | grep php | grep -v grep | awk '{print $2}'` 
    /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 100 -u www-data -f /usr/bin/php-cgi 
    killall -HUP nginx 

    重启后再看nginx的错误日志,也没有发现500报错的情况了。

    最后添加我自己的经历:

    如果按上述方法仍然解决不了问题,就可能是配置或是程序有错误了。

    1)查看nginx的错误日志,找到可能的原因。

       如果提示某些儿PHP扩展没有安装,则去php.ini中打开对应该的扩展或是安装对应该的扩展,重启nginxphp-fpm,再次刷新页面。

     2)如果数据库连接有问题,也可能会出现500错误,不过日志中一定会体现的

        在日志中提示相应的数据库连接有问题了,就要去查看数据库连接是否正确。根据日志,修改对应该的文件,数据库问题解决后,页面即恢复正常。



    ----夫英雄者,胸怀大志,腹有良谋,有包藏宇宙之机,吞吐天地之志者也。
  • 相关阅读:
    Maven命名约定
    8.30面试
    8.28面试
    8.27面试总结
    vue引入图片之require()
    使用pxtorem时遇到PostCSS plugin postcss-pxtorem requires PostCSS 8
    vue之Missing required prop: "id"
    git首次使用
    vue中style的scoped属性
    JavaScript中的this与function中的this
  • 原文地址:https://www.cnblogs.com/eagleking0318/p/6521039.html
Copyright © 2020-2023  润新知