500(服務器內部錯誤) 服務器遇到錯誤,沒法完成請求。 501(還沒有實施) 服務器不具有完成請求的功能。例如,當服務器沒法識別請求方法時,服務器可能會返回此代碼。 502(錯誤網關) 服務器做爲網關或代理,從上游服務器收到了無效的響應。 503(服務不可用) 目前沒法使用服務器(因爲超載或進行停機維護)。一般,這只是一種暫時的狀態。 504(網關超時) 服務器做爲網關或代理,未及時從上游服務器接收請求。 505(HTTP 版本不受支持) 服務器不支持請求中所使用的 HTTP 協議版本。
Nginx 500錯誤(Internal Server Error 內部服務器錯誤):500錯誤指的是服務器內部錯誤,也就是服務器遇到意外狀況,而沒法履行請求。php
在高併發鏈接的狀況下,Nginx是Apache服務器不錯的替代品。Nginx同時也能夠做爲7層負載均衡服務器來使用。根據測試結果,Nginx 0.6.31 + PHP 5.2.6 (FastCGI) 能夠承受3萬以上的併發鏈接數,至關於同等環境下Apache的10倍。
但不少人用 Nginx 的時候都會出現 500 錯誤,根據我使用的狀況來看,有如下幾種狀況。 html
一、是否磁盤空間不足?node
使用 df -k 查看硬盤空間是否滿了。清理硬盤空間就能夠解決500錯誤。nginx若是開啓了access log,在不須要的狀況下,最好關閉access log。access log會佔用大量硬盤空間。nginx
二、nginx配置文件錯誤?數據庫
這裏不是指語法錯誤,nginx若是配置文件有語法錯誤,啓動的時候就會提示。當配置rewrite的時候,有些規則處理不當會出現500錯誤,請仔細檢查本身的rewrite規則。若是配置文件裏有些變量設置不當,也會出現500錯誤,好比引用了一個沒有值的變量。服務器
三、若是上面的問題都不存在多是模擬的併發數太多了,須要調整一下nginx.conf的併發設置數併發
四、還有就是Linux索引節點(inode)用滿致使故障的,df -i 負載均衡
由索引節點(inode)爆滿引起500問題http://www.cnblogs.com/hiit/p/8582942.html高併發
inode譯成中文就是索引節點,每一個存儲設備(例如硬盤)或存儲設備的分區被格式化爲文件系統後,應該有兩部份,一部份是inode,另外一部份是Block,Block是用來存儲數據用的。而inode呢,就是用來存儲這些數據的信息,這些信息包括文件大小、屬主、歸屬的用戶組、讀寫權限等。inode爲每一個文件進行信息索引,因此就有了inode的數值。操做系統根據指令,能經過inode值最快的找到相對應的文件。 而服務器的Block雖然還有剩餘,但inode已經用滿,所以在建立新目錄或文件時,系統提示磁盤空間不足。php-fpm
通常分析思路:
(1)查看nginx error log ,查看php error log
nginx 錯誤日誌 error.log 默認位置:/usr/local/nginx/logs
(2)若是是too many open files,修改nginx的worker_rlimit_nofile參數,使用ulimit查看系統打開文件限制,修改/etc/security/limits.conf
(3)若是是腳本的問題,則須要修復腳本錯誤,並優化代碼
(4)各類優化都作好,仍是出現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,從新載入設置 複製代碼代碼以下: 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報錯的狀況了。 四、有多是數據庫問題個人在nginx日誌php日誌都沒有發現什麼問題, 最後發現數據庫訪問不了,修正後問題解決。
若是按上述方法仍然解決不了問題,就多是配置或是程序有錯誤了。
1 查看nginx的錯誤日誌,找到可能的緣由。
若是提示某些兒PHP擴展沒有安裝,則去php.ini中打開對應該的擴展或是安裝對應該的擴展,重啓nginx和php-fpm,再次刷新頁面。
2 若是數據庫鏈接有問題,也可能會出現500錯誤,不過日誌中必定會體現的
在日誌中提示相應的數據庫鏈接有問題了,就要去查看數據庫鏈接是否正確。根據日誌,修改對應該的文件,數據庫問題解決後,頁面即恢復正常。