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

資訊專欄INFORMATION COLUMN

Nginx 中 502 和 504 錯(cuò)誤詳解

Lionad-Morotar / 1999人閱讀

摘要:在使用時(shí),經(jīng)常會(huì)碰到和錯(cuò)誤,下面以來(lái)分析下這兩種常見(jiàn)錯(cuò)誤的原因和解決方案。錯(cuò)誤在和中分別有這樣兩個(gè)配置項(xiàng)和。這兩項(xiàng)都是用來(lái)配置一個(gè)腳本的最大執(zhí)行時(shí)間的。此外要注意的是的模塊中的和兩項(xiàng)。

在使用Nginx時(shí),經(jīng)常會(huì)碰到 502 Bad Gateway504 Gateway Time-out 錯(cuò)誤,下面以 Nginx+PHP-FPM 來(lái)分析下這兩種常見(jiàn)錯(cuò)誤的原因和解決方案。

1. 502 Bad Gateway 錯(cuò)誤

php.iniphp-fpm.conf 中分別有這樣兩個(gè)配置項(xiàng):max_execution_timerequest_terminate_timeout

這兩項(xiàng)都是用來(lái)配置一個(gè) PHP 腳本的最大執(zhí)行時(shí)間的。當(dāng)超過(guò)這個(gè)時(shí)間時(shí),PHP-FPM不只會(huì)終止腳本的執(zhí)行,還會(huì)終止執(zhí)行腳本的Worker進(jìn)程。所以Nginx會(huì)發(fā)現(xiàn)與自己通信的連接斷掉了,就會(huì)返回給客戶端502錯(cuò)誤。

以PHP-FPM的 request_terminate_timeout=30 秒時(shí)為例,報(bào) 502 Bad Gateway 錯(cuò)誤的具體信息如下:

1)Nginx錯(cuò)誤訪問(wèn)日志:

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報(bào)錯(cuò)日志:

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

所以只需將這兩項(xiàng)的值調(diào)大一些就可以讓PHP腳本不會(huì)因?yàn)閳?zhí)行時(shí)間長(zhǎng)而被終止了。request_terminate_timeout 可以覆蓋 max_execution_time,所以如果不想改全局的php.ini,那只改PHP-FPM的配置就可以了。

此外要注意的是Nginx的upstream模塊中的 max_failfail_timeout 兩項(xiàng)。有時(shí)Nginx與上游服務(wù)器(如Tomcat、FastCGI)的通信只是偶然斷掉了,但 max_fail 如果設(shè)置的比較小的話,那么在接下來(lái)的 fail_timeout時(shí)間內(nèi),Nginx都會(huì)認(rèn)為上游服務(wù)器掛掉了,都會(huì)返回502錯(cuò)誤。
所以可以將 max_fail 調(diào)大一些,將 fail_timeout 調(diào)小一些。

2. 504 Gateway Time-out 錯(cuò)誤

PHP-FPM設(shè)置的腳本最大執(zhí)行時(shí)間已經(jīng)夠長(zhǎng)了,但執(zhí)行耗時(shí)PHP腳本時(shí),發(fā)現(xiàn)Nginx報(bào)錯(cuò)從502變?yōu)?04了。這是為什么呢?

因?yàn)槲覀冃薷牡闹皇荘HP的配置,Nginx中也有關(guān)于與上游服務(wù)器通信超時(shí)時(shí)間的配置factcgi_connect/read/send_timeout

以Nginx超時(shí)時(shí)間為90秒,PHP-FPM超時(shí)時(shí)間為300秒為例,報(bào)504 Gateway Timeout錯(cuò)誤時(shí)的Nginx錯(cuò)誤訪問(wèn)日志如下:

 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"

調(diào)高這三項(xiàng)的值(主要是read和send兩項(xiàng),默認(rèn)不配置的話Nginx會(huì)將超時(shí)時(shí)間設(shè)為60秒)之后,504錯(cuò)誤也解決了。

而且這三項(xiàng)配置可以配置在http、server級(jí)別,也可以配置在location級(jí)別。擔(dān)心影響其他應(yīng)用的話,就配置在自己應(yīng)用的location中吧。

要注意的是 factcgi_connect/read/send_timeout 是對(duì) FastCGI 生效的,而 proxy_connect/read/send_timeout 是對(duì) 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;
     }

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/39139.html

相關(guān)文章

  • nginx的upstream異常

    摘要:異常與默認(rèn)值為默認(rèn)值為秒。實(shí)驗(yàn)請(qǐng)求里頭的會(huì)發(fā)起一個(gè),請(qǐng)求請(qǐng)求一次對(duì)逐個(gè)請(qǐng)求,都失敗,則的返回,對(duì)返回的取決于腳本再請(qǐng)求一次該下面的都掛的情況下出現(xiàn)中健康檢查機(jī)制深入分析容錯(cuò)機(jī)制原創(chuàng)胡志廣線上的一次分析 異常 upstream server temporarily disabled while connecting to upstream no live upstreams while...

    kun_jian 評(píng)論0 收藏0
  • Nginx基本配置備忘

    摘要:基本配置備忘從屬于筆者的服務(wù)端應(yīng)用程序入門(mén)與實(shí)踐,更多知識(shí)體系參閱我的技術(shù)體系結(jié)構(gòu)圖。有每個(gè)進(jìn)程的最大連接數(shù),選取哪種事件驅(qū)動(dòng)模型處理連接請(qǐng)求,是否允許同時(shí)接受多個(gè)網(wǎng)路連接,開(kāi)啟多個(gè)網(wǎng)絡(luò)連接序列化等。配置用戶或者組,默認(rèn)為。 [Nginx基本配置備忘]()從屬于筆者的服務(wù)端應(yīng)用程序入門(mén)與實(shí)踐,更多知識(shí)體系參閱2016:我的技術(shù)體系結(jié)構(gòu)圖:Web/ServerSideApplicatio...

    scq000 評(píng)論0 收藏0
  • nginx配置參數(shù)詳解及django框架下的nginxuwsgi的搭建

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

    snowLu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<