天天看点

Nginx PHP 文件上传 500错误

Nginx PHP 文件上传 500错误

一、

PHP上传是会在服务器上创建一个临时文件(需要一定的空间),磁盘沾满

后来发现PHP 上传错误码 error 是 7

查看df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2              20G   20G     0 100% /

发现临时磁盘已满,移动临时磁盘

二、

但很多人用 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; 

还是会出现上面问题,使用 

[[email protected] nginx]# cat /proc/sys/fs/file-max 

8192 

文件系统最大可打开文件数 

[[email protected] nginx]# ulimit -n 

1024 

程序限制只能打开1024个文件 

使用[[email protected] 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