站點常常呈現 500 Internal Server Error 的錯誤,著實讓人頭疼,這里主要利用的是 nginx 情況,換成 iis 情況,依然呈現 500 internal server error 錯誤,,一直找不到原因,網上有人說把友好提示錯誤去掉,看看提示什么,提示的是 wp php 文件執行時間太長而導致的錯誤,但無論如何就是找不著錯誤,只能一遍又一遍的清理接納站,再不可就重啟 iis 情況,今朝也只能這樣了,下面是夏日博客匯集的一些質料,是在 nginx 情況下的辦理要領,每個情況下都紛歧樣,最笨的要領就是重啟了。
此刻越來越多的站點開始用 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;
}
照舊會呈現上面問題,利用L
[[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
要領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日志都沒有發明什么問題,最后發明數據庫會見不了,批改后問題辦理.