服務器常見錯誤代碼500、501、502、503、504、505


一:500錯誤

1、500 Internal Server Error 內部服務錯誤:顧名思義500錯誤一般是服務器遇到意外情況,而無法完成請求。

2、500出錯的可能性:

  a、編程語言語法錯誤,web腳本錯誤

  b、並發高時,因為系統資源限制,而不能打開過多的文件

3、一般解決思路:

  a、查看nginx、php的錯誤日志文件,從而看出端倪

  b、如果是too many open files,修改nginx的worker_rlimit_nofile參數,使用ulimit查看系統打開文件限制,修改/etc/security/limits.conf,還是出現too many open files,那就要考慮做負載均衡,把流量分散到不同服務器上去了

  c、如果是腳本的問題,則需要修復腳本錯誤,優化代碼

 

二:502、504錯誤 

1、502 Bad Gateway錯誤、504 Bad Gateway timeout 網關超時

2、502、504出現的可能性

  web服務器故障、程序進程不夠

3、一般解決思路

  a、使用nginx代理,而后端服務器發生故障;或者php-cgi進程數不夠用;php執行時間長,或者是php-cgi進程死掉;已經fastCGI使用情況等都會導致502、504錯誤。

     b、502 是指請求的php-fpm已經執行,但是由於某種原因而沒有執行完畢,最終導致php-fpm進程終止。一般來說,與php-fpm.conf的設置有關,也與php的執行程序性能有關,網站的訪問量大,而php-cgi的進程數偏少。針對這種情況的502錯誤,只需增加            php-cgi的進程數。具體就是修改/usr/local/php/etc/php-fpm.conf文件,將其中的max_children值適當增加。這個數據要依據你的服務器的配置進行設置。一般一個php-cgi進程占20M內存,你可以自己計算下,適量增多。

         /usr/local/php/sbin/php-fpm reload 然后重啟一下.

     c、504 表示超時,也就是客戶端所發出的請求沒有到達網關,請求沒有到可以執行的php-fpm。與nginx.conf的配置也有關系。

 

501  服務器不具備完成請求的功能。例如,服務器無法識別請求方法時可能會返回此代碼。

503  服務器目前無法使用(由於超載或停機維護)。通常,這只是暫時狀態。(服務不可用)

505  服務器不支持請求中所用的 HTTP 協議版本。(HTTP 版本不受支持)

 

附:新增全部狀態碼含義

狀態碼分類
整體范圍    已定義范圍    分類
100~199    100~101    信息提示
200~299    200~206    成功
300~399    300~305    重定向
400~499    400~415    客戶端錯誤
500~599    500~505    服務器錯誤
100(continue):說明收到了請求的初始部分,請客戶端繼續。
客戶端發送一個攜帶值為100 Countinue的Expect請求首部,意味着客戶端在發送實體前等待100 Continue響應。這是一種優化,客戶端在避免向服務器發送一個大實體時,才使用。
101(Switching Protocols):說明服務器正在根據客戶端的指定,將協議切換成Update首部所列的協議。
200(OK):請求沒問題,實體的主體部分包含了所請求的資源。
201(Created):用於創建服務器對象的請求的響應(例如PUT)。實體主體部分包含各種引用了已創建的資源的URL。
202(Accepted):請求已被接受,但服務器還未對其執行任何動作,無法保證服務器會完成這個請求。
203(Non-Authoritative Information):實體首部包含的信息不是來自於源端服務器,而是來自資源的一份副本。
204(No Content):響應報文有狀態行和首部,但沒有實體的主體部分。
205(Reset Content):告知瀏覽器清除當前頁面中的所有HTML表單元素。
206(Partial Content):成功執行了一個部分或Range(范圍)請求。
重定向狀態碼要么告知客戶端使用替代位置來訪問他們所要訪問的資源,要么提供一個替代的響應而不是資源的內容。
資源被移動的情況下,發送一個重定向狀態碼和一個可選的Location首部告知客戶端資源已被移動,並且可以在哪里找到。
300(Multiple Choices):客戶端請求一個實際指向多個資源的URL時會返回這個狀態碼。
301(Moved Permanently):請求的URL已經被移除,響應中Location首部包含資源現所處的URL。
302(Found):與301類似,但是客戶端應該用Location首部的URL來臨時定位資源,將來的請求仍用老的URL。
303(See Other):告知客戶端應該用另一個URL來獲取資源,新URL位於Location首部,允許POST請求的響應將客戶端定向到某個資源上去。
304(Not Modified):客戶端可以通過所包含的請求首部,使其變成有條件的。
305(Use Proxy):說明必須通過一個代理來訪問資源,代理位置由Location首部給出。
306(未使用)
307(Temporary Redirect):和302一樣。
400(Bad Request):用於告知客戶端它發送了一個錯誤的請求。
401(Unauthorized):與適當的首部一起返回,在這些首部中請求客戶端在獲取對資源的訪問權之前,對自己進行認證。
402(Payment Required):保留狀態碼,未來之用。
403(Forbidden):說明請求被訪問權拒絕。拒絕原因可能在實體的主體部分。
404(Not Found):服務器無法找到所請求的URL。
405(Method Not Allowed):發起請求中帶有所請求的URL不支持的方法。響應中有Allow首部,告知客戶端對所請求的資源可以用哪些方法。
406(Not Acceptable):客戶端可以通過參數說明它們接受什么類型的實體,服務器沒有和客戶端可接受的URL相匹配的資源時用此代碼。
407(Proxy Authentication Required):和401相似,但用於要求對資源進行認證的代理服務器。
408(Request Timeout):如果完成請求所花時間太長,服務器可以返回此狀態碼。
409(Confict):說明請求可能在資源上引發的一些沖突。
410(Gone):與404類似,只是服務器之前有過此資源。
411(Length Required):服務器要求在請求報文中包含Content-Length首部。
412(Precondition Failed):客戶端發起了條件請求,且其中一個條件失敗了。
413(Request Entity Too Large):實體主體部分過大。
414(Request URI Too Long):URL比服務器能處理的長。
415(Unsupport Media Type):無法理解或無法支持客戶端所發實體的內容類型。
416(Requested Range Not Satisfiable):請求報文請求的是指定資源的某個范圍,而此范圍無效或無法滿足。
417(Expectation Failed):請求的Expect請求首部包含一個期望,但服務器無法滿足此期望。
500(Internal Server Error):服務器遇到一個妨礙它為請求提供服務的錯誤。
501(Not Implemented):客戶端發起的請求超出服務器的能力范圍。
502(Bad Gateway):作為代理或網關使用的服務器從請求響應鏈的下一條鏈路上收到了一條偽響應。
503(Service Unavailable):說明服務器現在無法為請求提供服務,將來可以。
504(Gateway Timeout):與408相似。
505(HTTP Version Not Support):服務器收到的請求使用了它無法或不願意支持的協議版本。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM