麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 服務器 > 管理維護 > 正文

Nginx 504 Gateway time-out錯誤完美解決方案

2024-09-10 14:20:12
字體:
來源:轉載
供稿:網友

在安裝完Nginx+PHP-fpm+Mysql后,跑PHP的應用會經常出現504 Gateway Time-out 或者502 Bad Gateway的情況。

Nginx 504 Gateway Time-out 的含義是所請求的網關沒有請求到,簡單來說就是沒有請求到可以執行的 PHP-CGI。這種情況可能是由于 nginx 默認的 fastcgi 進程響應的緩沖區太小造成的, 這將導致 fastcgi 進程被掛起, 如果你的 fastcgi 服務對這個掛起處理的不好, 那么最后就極有可能導致 504 Gateway Time-out。

Nginx 504 Gateway time-out錯誤.jpg

一般看來, 這種情況可能是由于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;

我只是調整了這兩個參數, 結果就是沒有再顯示那個超時, 可以說效果不錯

這個問題耽誤了我差不多4個小時的時間,網上有很多前輩們的解決方法,在這里記錄下解決這個問題的思路。首先這個問題主要是因為PHP的Script執行時間太長了,已經超過nginx能接受的底線

在nginx的日志中會看到這樣的log

2012/08/11 13:39:45 [error] 30788#0: *1 upstream timed out (110: Connection timed out)

while reading response header from upstream, client: 127.0.0.1, server: www.companysz.com

request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.companysz.com

在php-fpm的日志中會發現這樣的log

2012/08/11 13:39:45 [error] 30788#0: *1 upstream timed out (110: Connection timed out)

while reading response header from upstream, client: 127.0.0.1, server: www.companysz.com

request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.companysz.com"

一般來說,出現這樣的情況是因為Nginx會從php-fpm的9000端口讀取fastcgi的執行結果,等來N久都不見回復,所以就報504了。解決辦法很簡單,修改php的最長執行時間

; Maximum execution time of each script, in seconds; http://php.net/max-execution-time; 

Note: This directive is hardcoded to 0 for the CLI SAPI;

fix by Matt 2012.8.11

;max_execution_time = 3000

在這里我注釋掉php.ini參數的時間限制。還有php-fpm里的

;request_terminate_timeout = 0

這個參數會在php.ini中max_execution_time因為某些原因不能正常工作才會生效。

之前設置的是300s,安裝Magento的時候就一直就報504。后來索性修改到3000了。在Nginx的配置文件添加

#add by Matt 2012.8.11

fastcgi_read_timeout 3000;

fastcgi_connect_timeout 3000;

fastcgi_send_timeout 3000;

Magento你到底安裝多少sql文件啊?

PS:有時候緩存過小也會引起504,具體情況還需要根據Nginx的日志內容來分析。修改fastcgi的緩存大小:

fastcgi_buffers 2 256k;

fastcgi_buffer_size 128k;

fastcgi_busy_buffers_size 256k;

fastcgi_temp_file_write_size 256k;

VPS出現Nginx 504 Gateway time-out錯誤

錯新 只對 Nginx.conf 和 php-fpm.conf 兩個配置文件做了一些修改,觀察一段時間,看看效果。

1.將 Nginx.conf 配置文件中相應參數設置為如下:

命令:vi /usr/local/nginx/conf/nginx.conf (lnmp.org出品的lnmp一鍵安裝包路徑,其它請自行找目錄)

fastcgi_connect_timeout 300s; 

fastcgi_send_timeout 300s; 

fastcgi_read_timeout 300s; 

fastcgi_buffer_size 128k; 

fastcgi_buffers 8 128k;#8 128 

fastcgi_busy_buffers_size 256k; 

fastcgi_temp_file_write_size 256k; 

fastcgi_intercept_errors on;

2.將 php-fpm.conf 配置文件中相應參數設置為如下值:

命令:vi /usr/local/php/etc/php-fpm.conf (lnmp.org出品的lnmp一鍵安裝包路徑,其它請自行找目錄)

<value name="max_children">9</value>(錯新 購買的vps內存較小所以不能設置太大,應根據你的內存來設置) 

<value name="request_terminate_timeout">600s</value>(根據具體情況設置,詳請查閱參考文章) 

<value name=”style”>apache-like </value>(php-fpm的默認靜態處理方式會使得php-cgi的進程長期占用內存而無法釋放,這也是導致nginx出錯的原因之一,因此可以將php-fpm的處理方式改成apache模式。)

對 Linux  錯新 也是菜鳥,只好照著別人的方法來設置了,等一段時間,沒什么問題了,這個方法應該就是一個很有效的方法了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊人久久电影网 | 国产一级大片在线观看 | 久久久www成人免费毛片 | 色人阁导航 | 国毛片| 国产精品夜色视频一级区 | 久久综合久久美利坚合众国 | 国产无遮挡一级毛片 | 亚洲网站在线观看视频 | 99爱福利视频在线观看 | 男女羞羞视频在线观看免费 | 日本一区二区不卡高清 | 国产成人小视频在线观看 | 成人电影毛片 | 国内精品久久久久久2021浪潮 | 欧美中文日韩 | 成片免费观看视频大全 | 一级毛片播放 | 国产精品美女久久久久久不卡 | 看91| 成人综合一区二区 | 日韩黄色成人 | 免费a级黄色毛片 | 毛片视频网址 | 国产精品自在线拍 | 亚州精品天堂中文字幕 | 国产在线久 | 日韩av电影免费看 | 91精品国| 成人免费看视频 | 久久久精品视频在线观看 | 日韩视频在线一区二区三区 | 国产成人自拍小视频 | 羞羞的网站 | 亚洲aⅴ免费在线观看 | 亚洲精品成人久久久 | 欧美a∨亚洲欧美亚洲 | 爽成人777777婷婷 | 91成人午夜性a一级毛片 | 人与xxxxhdxxxhdxx 日韩黄a | 欧美一区高清 |