主頁 > 知識庫 > Nginx出現(xiàn)500 Internal Server Error 錯誤的解決方案

Nginx出現(xiàn)500 Internal Server Error 錯誤的解決方案

熱門標簽:大連電銷外呼系統(tǒng)運營商 長春電銷外呼系統(tǒng)代理商 代理外呼系統(tǒng)創(chuàng)業(yè) 400電話干嘛怎么申請信用卡 外呼系統(tǒng)虛擬號碼 接電話機器人罵人 400電話申請知乎 泰州智能外呼系統(tǒng)排名 百度地圖標注尺寸無法顯示

今日在使用 Nginx 的時候出現(xiàn) 500 錯誤,就搜索了一下錯誤代碼,分享給大家。

500(服務器內(nèi)部錯誤)    服務器遇到錯誤,無法完成請求。
501(尚未實施)   服務器不具備完成請求的功能。例如,當服務器無法識別請求方法時,服務器可能會返回此代碼。
502(錯誤網(wǎng)關(guān))   服務器作為網(wǎng)關(guān)或代理,從上游服務器收到了無效的響應。
503(服務不可用)  目前無法使用服務器(由于超載或進行停機維護)。通常,這只是一種暫時的狀態(tài)。
504(網(wǎng)關(guān)超時)   服務器作為網(wǎng)關(guān)或代理,未及時從上游服務器接收請求。
505(HTTP 版本不受支持)    服務器不支持請求中所使用的 HTTP 協(xié)議版本。

Nginx 500錯誤(Internal Server Error  內(nèi)部服務器錯誤):500錯誤指的是服務器內(nèi)部錯誤,也就是服務器遇到意外情況,而無法履行請求。

在高并發(fā)連接的情況下,Nginx是Apache服務器不錯的替代品。Nginx同時也可以作為7層負載均衡服務器來使用。根據(jù)測試結(jié)果,Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 可以承受3萬以上的并發(fā)連接數(shù),相當于同等環(huán)境下Apache的10倍。

但很多人用 Nginx 的時候都會出現(xiàn) 500 錯誤,根據(jù)我使用的情況來看,有以下幾種情況?! ?/p>

1、是否磁盤空間不足?

使用 df -k 查看硬盤空間是否滿了。清理硬盤空間就可以解決500錯誤。nginx如果開啟了access log,在不需要的情況下,最好關(guān)閉access log。access log會占用大量硬盤空間。

2、nginx配置文件錯誤?

這里不是指語法錯誤,nginx如果配置文件有語法錯誤,啟動的時候就會提示。當配置rewrite的時候,有些規(guī)則處理不當會出現(xiàn)500錯誤,請仔細檢查自己的rewrite規(guī)則。如果配置文件里有些變量設(shè)置不當,也會出現(xiàn)500錯誤,比如引用了一個沒有值的變量。

3、如果上面的問題都不存在可能是模擬的并發(fā)數(shù)太多了,需要調(diào)整一下nginx.conf的并發(fā)設(shè)置數(shù)

4、還有就是Linux索引節(jié)點(inode)用滿導致故障的,df -i    

由索引節(jié)點(inode)爆滿引發(fā)500問題https://www.jb51.net/article/175430.htm

inode譯成中文就是索引節(jié)點,每個存儲設(shè)備(例如硬盤)或存儲設(shè)備的分區(qū)被格式化為文件系統(tǒng)后,應該有兩部份,一部份是inode,另一部份是Block,Block是用來存儲數(shù)據(jù)用的。而inode呢,就是用來存儲這些數(shù)據(jù)的信息,這些信息包括文件大小、屬主、歸屬的用戶組、讀寫權(quán)限等。inode為每個文件進行信息索引,所以就有了inode的數(shù)值。操作系統(tǒng)根據(jù)指令,能通過inode值最快的找到相對應的文件。 而服務器的Block雖然還有剩余,但inode已經(jīng)用滿,因此在創(chuàng)建新目錄或文件時,系統(tǒng)提示磁盤空間不足。

一般分析思路:

(1)查看nginx error log ,查看php error log

nginx 錯誤日志 error.log 默認位置:/usr/local/nginx/logs

(2)如果是too many open files,修改nginx的worker_rlimit_nofile參數(shù),使用ulimit查看系統(tǒng)打開文件限制,修改/etc/security/limits.conf

(3)如果是腳本的問題,則需要修復腳本錯誤,并優(yōu)化代碼

(4)各種優(yōu)化都做好,還是出現(xiàn)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,重新載入設(shè)置

代碼如下:

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的錯誤日志,也沒有發(fā)現(xiàn)500報錯的情況了。

4、有可能是數(shù)據(jù)庫問題我的在nginx日志php日志都沒有發(fā)現(xiàn)什么問題, 最后發(fā)現(xiàn)數(shù)據(jù)庫訪問不了,修正后問題解決。

如果按上述方法仍然解決不了問題,就可能是配置或是程序有錯誤了。

1 查看nginx的錯誤日志,找到可能的原因。

如果提示某些兒PHP擴展沒有安裝,則去php.ini中打開對應該的擴展或是安裝對應該的擴展,重啟nginx和php-fpm,再次刷新頁面。

2 如果數(shù)據(jù)庫連接有問題,也可能會出現(xiàn)500錯誤,不過日志中一定會體現(xiàn)的

在日志中提示相應的數(shù)據(jù)庫連接有問題了,就要去查看數(shù)據(jù)庫連接是否正確。根據(jù)日志,修改對應該的文件,數(shù)據(jù)庫問題解決后,頁面即恢復正常。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:臺灣 中衛(wèi) 清遠 安陽 興安盟 長治 大慶 雅安

巨人網(wǎng)絡通訊聲明:本文標題《Nginx出現(xiàn)500 Internal Server Error 錯誤的解決方案》,本文關(guān)鍵詞  Nginx,出現(xiàn),500,Internal,Server,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Nginx出現(xiàn)500 Internal Server Error 錯誤的解決方案》相關(guān)的同類信息!
  • 本頁收集關(guān)于Nginx出現(xiàn)500 Internal Server Error 錯誤的解決方案的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章