溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

LNMPA遇到504 Gateway time-out錯(cuò)誤怎么辦

發(fā)布時(shí)間:2021-07-30 09:44:37 來(lái)源:億速云 閱讀:194 作者:小新 欄目:服務(wù)器

這篇文章主要為大家展示了“LNMPA遇到504 Gateway time-out錯(cuò)誤怎么辦”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“LNMPA遇到504 Gateway time-out錯(cuò)誤怎么辦”這篇文章吧。

Nginx的特點(diǎn)是處理靜態(tài)很給力,Apache的特點(diǎn)是處理動(dòng)態(tài)很穩(wěn)定,兩者結(jié)合起來(lái)便是LNMPA,nginx處理前端,apache處理后端,這樣處理靜態(tài)會(huì)很快,處理動(dòng)態(tài)會(huì)很穩(wěn)定。

當(dāng)我以為安裝完成以后便萬(wàn)事大吉,不料更新網(wǎng)站的時(shí)候卻出現(xiàn)504 Gateway time-out;起初還以為這是偶然,多次嘗試后依然出現(xiàn)這樣的情況,因此才決定查找解決方法。

LNMP面對(duì)504 Gateway time-out 因?yàn)?04 Gateway time-out是Nginx的專屬錯(cuò)誤,因此起初我以為是nginx配置出錯(cuò),查找網(wǎng)上的教程,找到相應(yīng)的解決方法,下面簡(jiǎn)單說說LNMP面對(duì)此種情況的解決方案。Nginx出現(xiàn)這樣的錯(cuò)誤,是因?yàn)閷?duì)PHP-CGI進(jìn)程數(shù)限制得太小,面對(duì)更新網(wǎng)站這類操作,很可能出現(xiàn)進(jìn)程不足而超時(shí)的情況,因此要修改兩處涉及到處理時(shí)間的文件。 首先是nginx.conf文件,這個(gè)文件在/nginx/conf/nginx.conf,打開以后,主要修改前面幾個(gè)時(shí)間,建議修改為120秒以上。

至于用什么工具修改,推薦在線命令行編輯;或者用winscp下載下來(lái),用Dreamweaver修改。

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;

其次要修改php-fpm.conf文件,這個(gè)文件在/php-5.2.17/etc/php-fpm.conf,不同的一鍵安裝包位置有所不同,
反正找找php安裝以后文件下面的etc文件夾即可,在線編輯或下載下來(lái)用Dreamweaver編輯。
進(jìn)入文件后搜索”max_children”這是php-cgi進(jìn)程數(shù),一個(gè)進(jìn)程占 20M~30M內(nèi)存,按自己的VPS云主機(jī)內(nèi)存進(jìn)行計(jì)算,好比512M內(nèi)存,推薦設(shè)置為18即可;
另外搜索”request_terminate_timeout”,這是超時(shí)時(shí)間,若php程序要長(zhǎng)時(shí)間運(yùn)作,那么設(shè)置時(shí)間大一點(diǎn)會(huì)比較好,好比設(shè)置為120秒,單位默認(rèn)是秒,或者寫成120同樣可以。

LNMPA遇到504 Gateway time-out 當(dāng)我按照Nginx的解決方法設(shè)置,很快設(shè)置成功,不過依然會(huì)出現(xiàn)504 Gateway time-out,這時(shí)我直接切換為L(zhǎng)NMP組合,發(fā)現(xiàn)不再遇到504 Gateway time-out錯(cuò)誤,這說明設(shè)置已經(jīng)生效;為什么還會(huì)出現(xiàn)這樣的錯(cuò)誤呢?

經(jīng)過大量的資料查找,終于發(fā)現(xiàn)這是Nginx與Apache通信時(shí)間設(shè)置問題,當(dāng)用戶發(fā)出php腳本執(zhí)行請(qǐng)求,nginx不會(huì)執(zhí)行php,
會(huì)把這個(gè)問題留給后臺(tái)的apache,nginx會(huì)等待一段時(shí)間,apache可以在等待時(shí)間內(nèi)處理php腳本請(qǐng)求,若未處理完,nginx便已未收到數(shù)據(jù)請(qǐng)求而返回504 Gateway time-out錯(cuò)誤,實(shí)際情況是apache依然會(huì)在后臺(tái)處理完php腳本,只是前臺(tái)返回錯(cuò)誤。

解決方法是修改nginx與apche通信時(shí)間,具體是配置proxy.conf,這個(gè)文件在/nginx/conf/下面,名字可能會(huì)有變化,好比有的安裝包是laproxy.conf,反正是**proxy.conf文件。

proxy_connect_timeout 60; 
proxy_send_timeout 600; 
proxy_read_timeout 90; 
proxy_buffer_size 128k;
proxy_buffers 8 128k; 
proxy_busy_buffers_size 256k; 
proxy_temp_file_write_size 100m;

第一項(xiàng)是連接時(shí)間,前端連接后端時(shí)間,60s以內(nèi)即可,第二個(gè)是發(fā)送時(shí)間,允許后端返回?cái)?shù)據(jù)的時(shí)間,90s以內(nèi)即可,第三個(gè)時(shí)間是讀寫時(shí)間,這是前端等待后端處理時(shí)間,這是導(dǎo)致504 Gateway time-out的根本原因,出現(xiàn)這個(gè)錯(cuò)誤,說明這個(gè)值太小,推薦不小于600s,服務(wù)器越差,那么設(shè)置得更長(zhǎng),保證處理完畢。

當(dāng)我把這個(gè)文件設(shè)置好,重啟nginx和apache,再次更新文章,已經(jīng)不會(huì)遇到這類錯(cuò)誤,說明出錯(cuò)原因不是nginx,而是前段和后端的通信時(shí)間太短。

另外,nginx還會(huì)有502錯(cuò)誤,實(shí)際上原理是差不多的,同樣設(shè)置上面這部分文件,LNMPA組合依然是設(shè)置前后端的通信時(shí)間。

以上是“LNMPA遇到504 Gateway time-out錯(cuò)誤怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI