導航:首頁 > 編程語言 > phpfpm504

phpfpm504

發布時間:2022-11-19 22:50:34

① 網頁出現「504 Gateway Time-out」,沒有其它信息是什麼原因

做網站的同學經常會發現一些nginx伺服器訪問時候提示504 Gateway Time-out錯誤,而出現這種錯誤有兩種情況,第一種可能是由於nginx默認的fastcgi進程響應的緩沖區太小造成的, 這將導致fastcgi進程被掛起, 如果你的fastcgi服務對這個掛起處理的不好, 那麼最後就極有可能導致504 Gateway Time-out。而第二種就有可能是php環境的配置問題,有些網站一直是使用nginx做代理後端的apache運行php來提供服務。apache經常會不定期不定時間的出現不能服務失去響應,然後nginx出現」504 Gateway Time-out」。

那麼遇到這些情況應該怎樣處理呢?下面是關於nginx伺服器出現504 Gateway Time-out的解決方法。
原因一:由於nginx默認的fastcgi進程響應的緩沖區太小造成的錯誤
解決方式:一般默認的fastcgi進程響應的緩沖區是8K,這時可以設置大一點,在nginx.conf里,加入:fastcgi_buffers 8 128k這表示設置fastcgi緩沖區為8塊128k大小的空間。當然如果在進行某一項即時的操作, 可能需要nginx的超時參數調大點, 例如設置成60秒:send_timeout 60;經過這兩個參數的調整,一般不會再提示「504 Gateway Time-out」錯誤,問題基本解決。
情況二:PHP環境的配置問題有時候網站需要對php-fpm和nginx進行配置修改。因為這種情況下,也會出現「504 Gateway Time-out」錯誤提示。而這時候Nginx 504 Gateway Time-out的含義就是所請求的網關沒有請求到,簡單來說就是沒有請求到可以執行的PHP-CGI。
解決方式更改php-fpm的幾處配置:把max_children由之前的10改為現在的30,這樣就可以保證有充足的php-cgi進程可以被使用;把request_terminate_timeout由之前的0s改為60s,這樣php-cgi進程 處理腳本的超時時間就是60秒,可以防止進程都被掛起,提高利用效率。接著再更改nginx的幾個配置項,減少FastCGI的請求次數,盡量維持buffers不變:fastcgi_buffers由 4 64k 改為 2 256k;fastc

② 我的網路出現504是什麼意思

當我們訪問流量較大的網站或操作數據較多的網站時,偶爾會出現504網關超時錯誤,這主要是由於網站伺服器配置不當造成的。讓我們分享解決504gatewaytime超時錯誤的方法。

詳細介紹方法/步驟
代碼解釋

504網關超時字面意思是,可以理解為網頁請求超時,即瀏覽網站網頁發送的請求無響應或無響應。在網站程序層面,請求沒有執行相應的php-cgi程序,或者php-cgi程序沒有進行相應的處理,或者cgi程序的響應處理結果沒有反饋給瀏覽器或者沒有及時反饋給瀏覽器。

錯誤報告背景

504網關超時錯誤大多存在於nginx網站伺服器的環境中,大多與nginx.conf和php-fpm.conf設置是否正確合理有關。解決方案是根據網站伺服器性能、網站流量等諸多因素,正確合理地設置niginx.conf和php-fpm.conf的配置。

溶液

為了正確合理地配置nginx.conf,我們需要了解和理解我們網站伺服器的配置性能,包括cpu、內存等。並對網站伺服器進行必要的性能測試(參考vps主機性能測試方法的詳細描述),從而准確掌握網站伺服器本身的性能狀態;

其次,通過添加網站統計代碼,分析一段時間內的網站流量情況,如cnzz站長統計等。並掌握網站日常流量和php-cgi請求的概況;

比較後,根據我們所了解的伺服器性能和網路流量,我們在nginx.conf中合理正確的設置了以下語句。

fastcgi _ connect _ timeout300s

fastcgi _ send _ timeout300s

fastcgi _ read _ timeout300s

fastcgi _ buffer _ size128k

fastcgi _ buffers8128k#8128

fastcgi _ busy _ buffers _ size256k

fastcgi _ temp _ file _ write _ size 256k;

fastcgi _ intercept _ errorson

以及php-fpm.conf中max_children和request _ end _ time out的設置這兩個參數的設置需要我們根據php程序和伺服器帶寬綜合考慮,計算出合理准確的值,以避免504 gateway超時或其他cgi無響應錯誤。

③ PHP 同時多次POST數據到同一網站相同介面獲取返回數據 用curl 總是會出現504錯誤

具體什麼報錯,有圖片嗎?
由於nginx默認的fastcgi進程響應緩沖區太小造成,這種情況下導致fastcgi進程被掛起,如果fastcgi服務隊這個掛起處理不是很好的話,就可能提示「504 Gateway Time-out」錯誤。
PHP環境的配置問題,這里我們需要對php-fpm和nginx進行配置修改。因為這種情況下,也會出現「504 Gateway Time-out」錯誤提示。

④ 網頁出現「504 Gateway Time-out」,沒有其它信息是什麼原因

對於一個Web開發者來說,504和502問題看上去好像很簡單,每個人也可能都遇到過,但把問題說清楚並不那麼容易

兩台設備只要通過proxy或fastcgi協議互相通信,都會遇到504問題,比如Nginx+PHP-FPM會遇到;代理伺服器連接後端Web服務也會遇到。本次遇到的場景屬於後者,重點講解代理導致的504問題。

那到底上面是504錯誤呢,看下wiki的引用:

4GatewayTimeout

The server was acting as a gateway or proxy and did not receive a timely response from the upstream server

意思就是一個網關或代理伺服器能夠連接後端伺服器,但在讀取伺服器響應的時候超時了。遇到504問題一般是後端服務的問題,比如:

後端進程無故退出了(可能是代碼異常,也可能是apache或nginx進程異常),導致代理伺服器接收不到後端響應。

後端響應緩慢,導致代理伺服器接收後端響應超時了。

伺服器出現504 Gateway Time-out的解決方法!

按照上述可能的兩個情況,逐一分析。

(1)x.php程序在特定的情況下,確實運行緩慢,但apache得access log在25秒左右的時候成功記錄了200訪問日誌(由於php代碼執行結束後才記錄日誌,一開始可能看不到access日誌,導致開始誤認為是後端程序的問題)。

(2)在x.php程序中記錄應用日誌,應用日誌和access log日誌一樣,沒有任何異常。

這說明代碼並沒有問題(但程序執行時間過長,有優化的空間),雖然在20秒產生504錯誤(由nginx處理),後端代碼進程仍然繼續運行,並在25秒成功運行。

排除這個問題後,最有可能是代理伺服器覺得後端響應過於緩慢,主動關閉了該連接,是不是代理伺服器設置的超時時間過短?由於公司的代理伺服器(ssl nginx)是由專人維護的,看不到具體的配置,郵件詢問了同事,得到回復如下:

proxy_read_timeout 60

proxy_send_timeout 60

首先看下 proxy_read_timeout 的介紹:

Defines a timeout for reading a response from the proxied server. The timeout is set only between two successive read operations, not for the transmission of the whole response. If the proxied server does not transmit anything within this time, the connection is closed.

最後將該值修改為:

proxy_read_timeout 300

proxy_send_timeout 300

問題最終解決了,肯定是proxy讀取超時了,但具體的配置仍然疑惑。

進一步測試

可以進一步了解nginx的proxy配置,如果沒有特殊的需求,配置非常簡單。

server {

listen 443 ssl;

server_name www.simplehttps.com;

location / {

access_log access.log main;

error_log error.log;

proxy_pass http://127.0.0.1:8080;

proxy_read_timeout 5;

}

}

proxy_pass 可以是一個host、內部域名、ip地址,不用是一個對外的域名。

如果遇到超時問題,觀察error.log日誌,會看到以下錯誤:

2018/09/19 21:01:19 [error] 17034#0: *253 upstream timed out (110: Connection timed out) while reading response header from upstream, client: *.*.*.*, server: www.simplehttps.com, request: "GET /x.php HTTP/1.1", upstream: "http://*.*.*.*:8080/x.php", host: "www.simplehttps.com"

最後經過不斷調整nginx的proxy_read_timeout指令和後端x.php程序的執行時間,也沒有遇到工作中遇到的問題(20秒和60秒之間不對稱的問題),只能後續繼續留意了。

總結

1:網關和後端的超時時間(proxy或fastcgi)必須協調一致,在本案例中,apache/mod_php運行最長時間如果是30秒,那麼nginx設置的超時時間必須大於30秒,因為必須考慮網路傳輸延時時間(非網路包總傳輸時間);而如果是nginx+php-fpm模式,nginx設置的超時時間相對簡單,因為大部分情況下,nginx和php-fpm部署在同一台機器上,網路延時相對較短,但必須考慮php最大執行時間和php-fpm最大執行時間,

2:針對504錯誤,可認為都是http錯誤碼,都是伺服器端的錯誤(相對於客戶端),在遇到相關錯誤的時候,必須根據錯誤碼判斷可能存在的問題,然後再針對性的排查,否則排查時間會增加很多。

⑤ 如何解決「504 Gateway Time-out」錯誤

我們在訪問大流量網站或者運營有較多數據的網站時候,偶爾會出現504 Gateway Time-out錯誤,這多是網站伺服器配置不當導致的,下面分享一下504GatewayTime-out錯誤的解決方法。

⑥ 如何解決504 Gateway Time-out

瀏覽器打開時提示504 Gateway Time-out錯誤搜索,是由伺服器未能及時響應客戶端造成的。

解決方法:

1、如果是流量太大引起的,請增加伺服器的流量。

2、如果是WEB伺服器的設置引起的,請重新進行設置。

3、這個問題只能由伺服器的管理員才能解決,客戶端無法解決。

拓展資料

網關(Gateway)又稱網間連接器、協議轉換器。網關在傳輸層上以實現網路互連,是最復雜的網路互連設備,僅用於兩個高層協議不同的網路互連。網關的結構也和路由器類似,不同的是互連層。網關既可以用於廣域網互連,也可以用於區域網互連。 網關是一種充當轉換重任的計算機系統或設備。在使用不同的通信協議、數據格式或語言,甚至體系結構完全不同的兩種系統之間,網關是一個翻譯器。與網橋只是簡單地傳達信息不同,網關對收到的信息要重新打包,以適應目的系統的需求。同時,網關也可以提供過濾和安全功能。大多數網關運行在OSI 7層協議的頂層--應用層。

⑦ 打開網頁出現504是什麼

打開網頁出現504是通常意味著上游伺服器已關閉(不響應網關 / 代理),而不是上游伺服器和網關 / 代理在交換數據的協議上不一致。

正常情況下,是由於被請求伺服器發送超時引起。伺服器(不一定是 Web 伺服器)正在作為一個網關或代理來完成客戶(如您的瀏覽器或我們的 CheckUpDown 機器人)訪問所需網址的請求。 為了完成您的 HTTP 請求, 該伺服器訪問一個上游伺服器, 但沒得到及時的響應。

(7)phpfpm504擴展閱讀

解決方法

這個問題完全是由後端電腦之間 IP 通訊緩慢而產生, 可能包括 Web 伺服器。 如果 Web 伺服器由某一網站託管, 只有負責那個網站設置的人員才能解決這個問題。

網路上代理和緩存的使用日漸增加。盡管 CheckUpDown 機器人將總是試圖 ' 鑽入 ' 真正收管的網站的電腦, 但是 HTTP 請求實際上落在哪裡並不能完全控制。 只要在處理 HTTP 請求的一連串電腦中, 有一個環節壞了,類似 504 的錯誤就很容易產生。

遇到 504 錯誤,與網站官方聯系(例如通過電子郵件),此問題個人無法解決。需要網站方和互聯網服務供應商 (ISP) 及 Web伺服器軟體供應商聯絡, 檢查在其控制下的不同電腦之間的 IP 數據傳輸的流通狀況。

參考資料來源:網路-504錯誤

⑧ 如何解決「504 Gateway Time-out」錯誤

504 gateway time-out怎麼解決?
Nginx所報告的「504 gateway time-out」的含義指定的客戶端所發出的的請求沒有到達網關,換句話說就是請求沒有到可以執行的PHP-fpm。
一般來說,Nginx報告的「504 gateway time-out」則是與nginx.conf的設置有關。
504 gateway time-out怎麼解決
1.先查看Nginx配置

2.然後停掉192.168.9.19的相關服務,再訪問:

3.修改源代碼src/http/ngx_http_special_response.c,找到如下部分:

4.修改以下內容:

5.重新編譯Nginx,然後再訪問:

504 gateway time-out故障雖然是隱藏了,可只能騙得了別人一時,最終還得解決問題。無論是502錯誤還是504錯誤,都有可能是Nginx的相關錯誤,也可能是後端伺服器的問題。那麼我們就從這些方面入手了解一下問題的所在。
(1)首先需要確定的是後端伺服器啟動沒有,當然在這里就是php-fpm進行啟動沒有。
(2)其次是確定php-fpm的worker進程是否夠用。
(3)FastCGI緩存或代理的緩存情況。
(4)PHP執行時間長。

⑨ 訪問php頁面出現504 Gateway Timeout 怎麼解決

情況一:由於nginx默認的fastcgi進程響應緩沖區太小造成
這種情況下導致fastcgi進程被掛起,如果fastcgi服務隊這個掛起處理不是很好的話,就可能提示「504 Gateway Time-out」錯誤。
情況一解決辦法:
默認的fastcgi進程響應的緩沖區是8K,我們可以設置大一點,在nginx.conf里,加入:fastcgi_buffers 8 128k
這表示設置fastcgi緩沖區為8塊128k大小的空間。
情況一解決辦法(改進):
在上述方法修改後,如果還是出現問題,我們可以繼續修改nginx的超時參數,將參數調大一點,如設置為60秒:
send_timeout 60;
經過這兩個參數的調整,結果沒有再提示「504 Gateway Time-out」錯誤,說明效果還是挺不錯的,問題基本解決。
情況二:PHP環境的配置問題
這里我們需要對php-fpm和nginx進行配置修改。因為這種情況下,也會出現「504 Gateway Time-out」錯誤提示。
情況二解決辦法( php-fpm配置修改):
將max_children由之前的10改為30,這樣操作是為了保證有充足的php-cgi進程可以被使用。
將request_terminate_timeout由之前的0秒改成60秒,這樣使php-cgi進程處理腳本的超時時間提高到60秒,可以防止進程被掛起以提高利用效率。
情況二解決辦法(nginx配置修改):
為了減少fastcgi的請求次數,盡量維持buffers不變,我們要更改nginx的幾個配置項,如下:
將fastcgi_buffers由4 64k改為2 256k;
將fastcgi_buffer_size 由64k改為128k;
將fastcgi_busy_buffers_size由128k改為256k;
將fastcgi_temp_file_write_size由128k改成256k。
情況二解決辦法修改完,我們需要重新載入php-fpm和nginx的配置,然後再進行測試。之後就沒有發現「504 Gateway Time-out」錯誤,效果也還是不錯的!

⑩ 訪問php頁面出現504 Gateway Timeout 怎麼解決

一般看來, 這種情況可能是由於nginx默認的fastcgi進程響應的緩沖區太小造成的, 這將導致fastcgi進程被掛起, 如果你的fastcgi服務對這個掛起處理的不好, 那麼最後就極有可能導致504 Gateway Time-out
現在的網站, 尤其某些論壇有大量的回復和很多內容的, 一個頁面甚至有幾百K
默認的fastcgi進程響應的緩沖區是8K, 我們可以設置大點
在nginx.conf里, 加入:
fastcgi_buffers 8 128k
這表示設置fastcgi緩沖區為8×128k
當然如果在進行某一項即時的操作, 可能需要nginx的超時參數調大點, 例如設置成60秒:
send_timeout 60;
只是調整了這兩個參數, 結果就是沒有再顯示那個超時, 可以說效果不錯
另一篇文章
首先是更改php-fpm的幾處配置:
把max_children由之前的10改為現在的30,這樣就可以保證 有充足的php-cgi進程可以被使用;
把request_terminate_timeout由之前的0s改為60s,這樣php-cgi進程 處理腳本的超時時間就是60秒,可以防止進程都被掛起,提高利用效率。
接著再更改nginx的幾個配置項,減少FastCGI的請求次 數,盡量維持buffers不變:
fastcgi_buffers由 4 64k 改為 2 256k;
fastcgi_buffer_size 由 64k 改為 128K;
fastcgi_busy_buffers_size 由 128K 改為 256K;
fastcgi_temp_file_write_size 由 128K 改為 256K。
好了,重新載入php-fpm和nginx的配置,再次測試,至今兩周時間內沒有再出現504 Gateway Time-out的情況,算是達到效果了。
另外,php-fpm的默認靜態處理方式會使得php-cgi的進程長期佔用內存而無法釋放,這也是導致nginx出錯的原因之一,因此可以將php-fpm的處理方式改成apache模式。
apache-like

閱讀全文

與phpfpm504相關的資料

熱點內容
超解壓兔子視頻 瀏覽:20
單片機怎麼測負脈沖 瀏覽:170
魅族備份的app在哪裡 瀏覽:736
java倒三角列印 瀏覽:112
通達信回封板主圖源碼 瀏覽:44
戰地什麼伺服器 瀏覽:299
安卓為什麼老是閃退怎麼辦 瀏覽:803
樂高機器人的編程軟體下載 瀏覽:223
工作中怎麼使用加密狗 瀏覽:735
雲伺服器的後台找不到 瀏覽:98
php逐行寫入文件 瀏覽:912
javaoracleweb 瀏覽:440
京東加密碼怎麼弄 瀏覽:467
單片機程序員培訓 瀏覽:992
PHP商城源代碼csdn 瀏覽:636
怎麼把電腦里文件夾挪出來 瀏覽:693
java流程處理 瀏覽:685
ftp創建本地文件夾 瀏覽:660
腰椎第一節壓縮 瀏覽:738
xp去掉加密屬性 瀏覽:117