當前位置:首頁 » 網頁前端 » 前端504啥問題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

前端504啥問題

發布時間: 2022-10-18 12:46:59

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

打開網頁出現504是通常意味著上游伺服器已關閉(不響應網關 / 代理),而不是上游伺服器和網關 / 代理在交換數據的協議上不一致。
正常情況下,是由於被請求伺服器發送超時引起。伺服器(不一定是 Web 伺服器)正在作為一個網關或代理來完成客戶(如您的瀏覽器或我們的 CheckUpDown 機器人)訪問所需網址的請求。 為了完成您的 HTTP 請求, 該伺服器訪問一個上游伺服器, 但沒得到及時的響應。
解決方法
這個問題完全是由後端電腦之間 IP 通訊緩慢而產生, 可能包括 Web 伺服器。 如果 Web 伺服器由某一網站託管, 只有負責那個網站設置的人員才能解決這個問題。
網路上代理和緩存的使用日漸增加。盡管 CheckUpDown 機器人將總是試圖 ' 鑽入 ' 真正收管的網站的電腦, 但是 HTTP 請求實際上落在哪裡並不能完全控制。 只要在處理 HTTP 請求的一連串電腦中, 有一個環節壞了,類似 504 的錯誤就很容易產生。
遇到 504 錯誤,與網站官方聯系(例如通過電子郵件),此問題個人無法解決。需要網站方和互聯網服務供應商 (ISP) 及 Web 伺服器軟體供應商聯絡, 檢查在其控制下的不同電腦之間的 IP 數據傳輸的流通狀況。

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

您好親,很高興為您服務解答
504Gateway Time-out,就字面意思,我們可以理解為網頁請求超時,也就是游覽網頁所發出的請求沒有反應或者未響應。
出現「504 Gateway Time-out」的原因:
1、在網站程序層面來說,就是請求未能夠執行相應的PHP-CGI程序,或者PHP-CGI程序未能做出相應的處理,又或者是CGI程序的響應處理結果未能夠反饋到游覽器或者未能及時反饋到游覽器。
2、504Gateway Time-out錯誤多是存在於Nginx網站服務環境下,多於nginx.conf與php-fpm.conf設置是否正確合理有關。
希望我的回答對您能有所幫助哦親,滿意的話麻煩給個贊,最後再次祝您身體健康,心情愉快!

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

504表示與伺服器通信失敗了。
比如你訪問網路頁面,頁面請求發出去之後,但是網路的伺服器長時間沒有給你回應,然後就會提示 504。

4. 網頁出現「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錯誤碼,都是伺服器端的錯誤(相對於客戶端),在遇到相關錯誤的時候,必須根據錯誤碼判斷可能存在的問題,然後再針對性的排查,否則排查時間會增加很多。

5. 錯誤504是什麼意思

504錯誤代表網關超時 (Gateway timeout),是指伺服器作為網關或代理,但是沒有及時從上游伺服器收到請求。

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

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

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

你好,很高興為你解答:

504錯誤代表網關超時 (Gateway timeout),是指伺服器作為網關或代理,但是沒有及時從上游伺服器收到請求。

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

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

正常情況下,是由於被請求伺服器發送超時引起。

7. 什麼是504錯誤啊

504錯誤代表網關超時 (Gateway timeout),是指伺服器作為網關或代理,但是沒有及時從上游伺服器收到請求。

任何客戶端在和網路伺服器通訊時,都需經過以下循環:

1、從站點的 IP 名稱獲得一個 IP 地址。這個對應關系 ( 即由 IP 名稱向 IP 地址轉換的對應關系 ) 由域名伺服器 (DNSs) 提供。

2、打開一個 IP 套接字 (socket) 連接到該 IP 地址。

3、通過該套接字寫 HTTP 數據流。

4、從Web伺服器接受響應的 HTTP 數據流。該數據流包括狀態編碼, 其值取決於 HTTP 協議 。 解析該數據流得到 狀態編碼和其他有用信息。

5、該錯誤在以上所述的最後一步生成,即當客戶端收到 HTTP 狀態編碼 並識別其為 『504』 時。

(7)前端504啥問題擴展閱讀

特性

1、可擴展性

伺服器必須具有一定的「可擴展性」,這是因為企業網路不可能長久不變,特別是在當今信息時代。

2、易使用性

伺服器的功能相對於PC機來說復雜許多,不僅指其硬體配置,更多的是指其軟體系統配置。伺服器要實現如此多的功能,沒有全面的軟體支持是無法想像的。

3、可用性

對於一台伺服器而言,一個非常重要的方面就是它的「可用性」,即所選伺服器能滿足長期穩定工作的要求,不能經常出問題。其實就等同於Sun所提出的可靠性(Reliability)。

4、易管理性

在伺服器的主要特性中,還有一個重要特性,那就是伺服器的「易管理性」。