您好,登錄后才能下訂單哦!
本篇內容主要講解“Nginx 502 bad gateway錯誤如何解決”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Nginx 502 bad gateway錯誤如何解決”吧!
502 Bad Gateway 是一種HTTP協議的服務器端錯誤狀態代碼,它表示作為網關或代理角色的服務器,從上游服務器(如tomcat、php-fpm)中接收到的響應是無效的。
Gateway (網關)在計算機網絡體系中可以指代不同的設備,502 錯誤通常不是客戶端能夠修復的,而是需要由途徑的Web服務器或者代理服務器對其進行修復。
總結:php-cgi進程數不夠用、php執行時間長、或者是php-cgi進程死掉,都會出現502錯誤.
HTTP Error 502 Bad Gateway HTTP 錯誤 502 網關錯誤
HTTP 502
502 Service Temporarily Overloaded 502 服務暫時超載
Temporary Error (502) 臨時錯誤 (502)
502 Server Error: The server encountered a temporary error and could not - - complete your request 502 服務器錯誤:服務器遇到臨時錯誤,無法完成您的請求
502 Bad Gateway Nginx 502 網關壞 Nginx
500 Internal Server ErrorWeb 服務器遇到遇到阻止其無法完成其任務(即客戶端請求)的條件時,將顯示此錯誤
501 Not Implemented 服務器無法支持或識別請求方法。 它缺少處理請求的功能,因此它會響應此錯誤
502 Bad Gateway 服務器之間發生了錯誤,充當代理或網關時,您的服務器在嘗試處理請求時未收到上游服務器的正確響應
503 Service Unavailable 由于正在進行維護或服務器當前過載而導致服務器無法處理請求的臨時情況
504 Gateway Timeout 服務器再次充當代理或網關時,沒有及時從另一個服務器(例如DNS)獲得響應,因此它無法處理請求
505 HTTP Version Not Supported 當您的Web服務器不能或將不支持源自請求的HTTP協議版本時,將發生他的錯誤。 該錯誤通常包含服務器為什么不合作的描述
多數是后端問題也就是PHP的問題, 簡單的情況可以刷新(不是一般的刷新哦,Ctrl + F5
強制刷新)解決。在php服務當中,有兩個參數非常的重要:max_requestst
和max_children
,具體的原因必須要查看日志才可以弄明白!
修改/www/server/php/80/etc/php-fpm.conf request_terminate_timeout = 100
,把100
改成5
;
php執行超時,修改/usr/local/php/etc/php.ini 將max_execution_time
為300
;
ps aux | grep php
查看是否啟動了php-fpm
服務;
運行linux命令:
netstat -anpo | grep “php-cgi” | wc -l
判斷是否接近FastCGI進程,接近配置文件中設置的數值,表明worker進程數設置太少;
PHP程序執行時間超過了Nginx等待時間,可以適當增加nginx.conf
配置文件中FastCGI
的timeout
時間,根據實際情況調高以下參數值:
fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300;
nginx和apache一樣,有前端緩沖限制,可以調整緩沖參數
fastcgi_buffer_size 32k; fastcgi_buffers 8 32k;
首先查找nginx日志文件,目錄/var/log/nginx
,在日志中發現了如下錯誤:
[error] 15421#0: *16 upstream sent too big header while reading response header from upstream
意思是nginx緩沖區bug造成,網站頁面占用緩沖區可能過大。增加緩沖區徹底解決了Nginx 502 Bad Gateway,方法如下:
http { ... fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; ... }
請根據服務器已經網站的情況自行增大上述兩個配置項。
如果header過大,超出了默認的1k,就會引發upstream sent too big header
server { listen 80; server_name *.test.com; location / { ###############添加這3行 proxy_buffer_size 64k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k; ###############添加這3行 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; ............ }
在安裝好使用過程中出現502問題,一般是因為默認php-cgi進程是5個,可能因為phpcgi進程不夠用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 將其中的max_children
的值適當增加。也有可能是max_requests
的值不夠用。需要說明的是這連個配置項占用內存很大,請根據服務器配置進行設置。否則可能起到反效果。
如果您上網時在您嘗試訪問的所有網站上都看這個問題,有兩種可能
①你的ISP重大設備故障/過載
②有問題的內部互聯網連接如您的防火墻無法正常運作。
在種情況下,只有您的ISP可以幫助您。在第二種情況下,你需要解決什么,那是阻止你進入互聯網。
如果您只有在部分嘗試訪問的網站中出現此問題,那很可能是一個問題,即這些網站之一,其設備故障或超載。聯系你網站的管理員。
到此,相信大家對“Nginx 502 bad gateway錯誤如何解決”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。