您好,登錄后才能下訂單哦!
這篇文章主要講解了“nginx提示500 Internal Server Error錯誤怎么解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“nginx提示500 Internal Server Error錯誤怎么解決”吧!
在高并發連接的情況下,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錯誤怎么解決”的內容了,經過本文的學習后,相信大家對nginx提示500 Internal Server Error錯誤怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。