国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Nginx 中 502 和 504 錯誤詳解

Lionad-Morotar / 2006人閱讀

摘要:在使用時,經常會碰到和錯誤,下面以來分析下這兩種常見錯誤的原因和解決方案。錯誤在和中分別有這樣兩個配置項和。這兩項都是用來配置一個腳本的最大執行時間的。此外要注意的是的模塊中的和兩項。

在使用Nginx時,經常會碰到 502 Bad Gateway504 Gateway Time-out 錯誤,下面以 Nginx+PHP-FPM 來分析下這兩種常見錯誤的原因和解決方案。

1. 502 Bad Gateway 錯誤

php.iniphp-fpm.conf 中分別有這樣兩個配置項:max_execution_timerequest_terminate_timeout

這兩項都是用來配置一個 PHP 腳本的最大執行時間的。當超過這個時間時,PHP-FPM不只會終止腳本的執行,還會終止執行腳本的Worker進程。所以Nginx會發現與自己通信的連接斷掉了,就會返回給客戶端502錯誤。

以PHP-FPM的 request_terminate_timeout=30 秒時為例,報 502 Bad Gateway 錯誤的具體信息如下:

1)Nginx錯誤訪問日志:

2013/09/19 01:09:00 [error] 27600#0: *78887 recv() failed (104: Connection reset by peer) while reading response header from upstream, 
client: 192.168.1.101, server: test.com, request: "POST /index.php HTTP/1.1", upstream: "fastcgi://unix:/dev/shm/php-fcgi.sock:", 
host: "test.com", referrer: "http://test.com/index.php"

2)PHP-FPM報錯日志:

WARNING:  child 25708 exited on signal 15 (SIGTERM) after 21008.883410 seconds from start

所以只需將這兩項的值調大一些就可以讓PHP腳本不會因為執行時間長而被終止了。request_terminate_timeout 可以覆蓋 max_execution_time,所以如果不想改全局的php.ini,那只改PHP-FPM的配置就可以了。

此外要注意的是Nginx的upstream模塊中的 max_failfail_timeout 兩項。有時Nginx與上游服務器(如Tomcat、FastCGI)的通信只是偶然斷掉了,但 max_fail 如果設置的比較小的話,那么在接下來的 fail_timeout時間內,Nginx都會認為上游服務器掛掉了,都會返回502錯誤。
所以可以將 max_fail 調大一些,將 fail_timeout 調小一些。

2. 504 Gateway Time-out 錯誤

PHP-FPM設置的腳本最大執行時間已經夠長了,但執行耗時PHP腳本時,發現Nginx報錯從502變為504了。這是為什么呢?

因為我們修改的只是PHP的配置,Nginx中也有關于與上游服務器通信超時時間的配置factcgi_connect/read/send_timeout

以Nginx超時時間為90秒,PHP-FPM超時時間為300秒為例,報504 Gateway Timeout錯誤時的Nginx錯誤訪問日志如下:

 2013/09/19 00:55:51 [error] 27600#0: *78877 upstream timed out (110: Connection timed out) while reading response header from upstream, 
 client: 192.168.1.101, server: test.com, request: "POST /index.php HTTP/1.1", upstream: "fastcgi://unix:/dev/shm/php-fcgi.sock:", 
 host: "test.com", referrer: "http://test.com/index.php"

調高這三項的值(主要是read和send兩項,默認不配置的話Nginx會將超時時間設為60秒)之后,504錯誤也解決了。

而且這三項配置可以配置在http、server級別,也可以配置在location級別。擔心影響其他應用的話,就配置在自己應用的location中吧。

要注意的是 factcgi_connect/read/send_timeout 是對 FastCGI 生效的,而 proxy_connect/read/send_timeout 是對 proxy_pass 生效的。

配置舉例:

location ~ .php$ {
                root                    /home/cdai/test.com;
                include                 fastcgi_params;
                fastcgi_connect_timeout      180;
                fastcgi_read_timeout            600;
                fastcgi_send_timeout            600;
                fastcgi_pass            unix:/dev/shm/php-fcgi.sock;
                fastcgi_index           index.php;
                fastcgi_param          SCRIPT_FILENAME         /home/cdai/test.com$fastcgi_script_name;
     }

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/39139.html

相關文章

  • nginx的upstream異常

    摘要:異常與默認值為默認值為秒。實驗請求里頭的會發起一個,請求請求一次對逐個請求,都失敗,則的返回,對返回的取決于腳本再請求一次該下面的都掛的情況下出現中健康檢查機制深入分析容錯機制原創胡志廣線上的一次分析 異常 upstream server temporarily disabled while connecting to upstream no live upstreams while...

    kun_jian 評論0 收藏0
  • Nginx基本配置備忘

    摘要:基本配置備忘從屬于筆者的服務端應用程序入門與實踐,更多知識體系參閱我的技術體系結構圖。有每個進程的最大連接數,選取哪種事件驅動模型處理連接請求,是否允許同時接受多個網路連接,開啟多個網絡連接序列化等。配置用戶或者組,默認為。 [Nginx基本配置備忘]()從屬于筆者的服務端應用程序入門與實踐,更多知識體系參閱2016:我的技術體系結構圖:Web/ServerSideApplicatio...

    scq000 評論0 收藏0
  • nginx配置參數詳解及django框架下的nginxuwsgi的搭建

    摘要:于年發布,聚焦于高性能,高并發和低內存消耗問題。二服務的啟停控制在講解配置文件參數前,讓我們先來了解一下的啟停操作吧。在講解配置項之前,讓我們先了解一下各個塊的作用。配置最大連接數設置允許每個同時開啟的最大連接數,默認值。 一、nginx簡介、 ??nginx(發音engine x)是俄羅斯軟件工程師Igor Sysoev開發的免費開源web服務器軟件。nginx于2004年發布,聚焦...

    snowLu 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<