搜索
首页php教程PHP开发nginx提示:500 Internal Server Error错误的解决方法

现在越来越多的站点开始用 Nginx ,("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。 

在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据测试结果,Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。 

但很多人用 Nginx 的时候都会出现 500 错误,根据我使用的情况来看,很大一部分原因是 因为文件打开句柄太小有关。

在linux 下 使用这个命令增加进程打开的文件句柄。 
ulimit -SHn 51200 
默认只用1000 当链接数小的时候看不出来,使用这种处理方法可以有效防止500错误出现。 
今天访问网站的时候,偶尔会遇上500 Internal Server Error的错误提示页面. 
查了相关资料认为是访问过大,系统内核进程受限才出现的. 

答案如下: 

$ ulimit -n 
11095 

程序限制只能打开11095个文件,ulimit命令是设置当前用户一个进程可拥有的文件描述符的数量. 
看来是模拟的并发数太多了,需要调整一下nginx.conf的并发设置数,(我的配置主机的内存2G,CPU为2.8G,) 

vi /etc/nginx/nginx.conf 
events { 
worker_connections 1024; 
}

调整为 

events { 
worker_connections 10240; 
}

还是会出现上面问题,使用 
[root@qimutian nginx]# cat /proc/sys/fs/file-max 
8192 
文件系统最大可打开文件数 
[root@qimutian nginx]# ulimit -n 
1024 
程序限制只能打开1024个文件 
使用[root@qimutian nginx]# ulimit -n 8192调整一下 
或者永久调整打开文件数 可在启动文件/etc/rc.d/rc.local末尾添加(在/etc/sysctl.conf末尾添加fs.file-max=8192) 
ulimit -n 8192 
调整CentOS5文件打开数 
使用ulimit -a一下,发现OPEN FILES不能默认超过1024,昨天的在进行压力测试时,出现500错误,具体请查看 
nginx出现 500 Internal Server Error 
早上起来看一下,发现原来是通过如下方式调整 
方法1 (永久调整) 

vi /etc/security/limits.conf 

在文件末加上: 

* soft nofile 8192 
* hard nofile 20480 

同时vi /etc/sysctl.conf末尾添加 
fs.file-max=8192 
重新启动,在使用ulimit -n查看的数已经是8192 

方法2 (临时用) 

直接在终端输入 ulimit -n 8192 按回车就ok了

500 Internal Server Error错误补充:

1、硬盘空间满了 

使用 df -k 查看硬盘空间是否满了。清理硬盘空间就可以解决500错误。nginx如果开启了access log,在不需要的情况下,最好关闭access log。access log会占用大量硬盘空间。 

2、nginx配置文件错误 

这里不是指语法错误,nginx如果配置文件有语法错误,启动的时候就会提示。当配置rewrite的时候,有些规则处理不当会出现500错误,请仔细检查自己的rewrite规则。如果配置文件里有些变量设置不当,也会出现500错误,比如引用了一个没有值的变量。 

3、如果上面的问题都不存在可能是模拟的并发数太多了,需要调整一下nginx.conf的并发设置数 

解决方法是: 

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报错的情况了。 

4、有可能是数据库问题我的在nginx日志php日志都没有发现什么问题, 最后发现数据库访问不了,修正后问题解决.

更多nginx提示:500 Internal Server Error错误的解决方法相关文章请关注PHP中文网!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。