由于網(wǎng)站不穩(wěn)定的因素,經(jīng)常報(bào)504 Gateway Time-out的錯(cuò)誤,CPU也跟著100%,每次都要重 啟服務(wù)器才可以解決問題,問題的根源在哪里,我們?cè)趺床拍苓M(jìn)行解決那?下面為大家詳細(xì)講解。
什么是“504 Gateway Time-out”
其實(shí)很簡單,504 Gateway Time-out就是請(qǐng)求超時(shí),由于服務(wù)器未能技術(shù)響應(yīng)而造成的,當(dāng)然了,數(shù)據(jù)庫不響應(yīng)也是可以造成無法連接,或者504的錯(cuò)誤。
504 Gateway Time-out是由哪些原因造成的。
1,服務(wù)器不穩(wěn)定,死機(jī)等會(huì)造成 504 Gateway Time-out
如果網(wǎng)站服務(wù)器異常,死機(jī)等等無法讓用戶得到響應(yīng)就會(huì)造成504 Gateway Time-out的問題,一般情況下,重啟服務(wù)器就會(huì)OK,如果經(jīng)常出現(xiàn)這樣的問題,你可以考慮更換服務(wù)器來解決。
2,網(wǎng)站被攻擊導(dǎo)致 504Gateway Time-out
如果你的網(wǎng)站被攻擊,比如DOS攻擊,也會(huì)造成服務(wù)器504Gateway Time-out的錯(cuò)誤,這個(gè)時(shí)候就需要增加防御,或者設(shè)置DNS隱藏真實(shí)IP、購買高防服務(wù)器去做硬性防御了,或者安裝云鎖,批量屏蔽攻擊者的IP段,也是可以的。
3,數(shù)據(jù)庫與服務(wù)器斷開相應(yīng)
這邊說一下,服務(wù)器死機(jī),不一定就是本機(jī)異常,也可能是mysql異常所導(dǎo)致的,建議升級(jí)數(shù)據(jù)庫版本,充分保證良性運(yùn)行。
4,PHP環(huán)境的配置問題
有時(shí)候網(wǎng)站需要對(duì)php-fpm和nginx進(jìn)行配置修改。因?yàn)檫@種情況下,也會(huì)出現(xiàn)“504 Gateway Time-out”錯(cuò)誤提示。而這時(shí)候Nginx 504 Gateway Time-out的含義就是所請(qǐng)求的網(wǎng)關(guān)沒有請(qǐng)求到,簡單來說就是沒有請(qǐng)求到可以執(zhí)行的PHP-CGI。
解決方式
更改php-fpm的幾處配置:
把max_children由之前的10改為現(xiàn)在的30,這樣就可以保證有充足的php-cgi進(jìn)程可以被使用;
把request_terminate_timeout由之前的0s改為60s,這樣php-cgi進(jìn)程 處理腳本的超時(shí)時(shí)間就是60秒,可以防止進(jìn)程都被掛起,提高利用效率。
接著再更改nginx的幾個(gè)配置項(xiàng),減少FastCGI的請(qǐng)求次數(shù),盡量維持buffers不變:
fastcgi_buffers由 4 64k 改為 2 256k;
fastcgi_buffer_size 由 64k 改為 128K;
fastcgi_busy_buffers_size 由 128K 改為 256K;
fastcgi_temp_file_write_size 由 128K 改為 256K。
重新加載php-fpm和nginx的配置,再次測試,如果沒有出現(xiàn)“504 Gateway Time-out”錯(cuò)誤,問題解決。
4,發(fā)服務(wù)器商的工單,讓服務(wù)器商技術(shù)協(xié)助解決!
最后,如果你是購買正規(guī)服務(wù)器商的服務(wù)器,你也是可以通過發(fā)工單來解決這個(gè)問題的,讓技術(shù)協(xié)助你解決,一般而言,景安的服務(wù)器是不需要花錢的,阿里云的服務(wù)器可能需要花點(diǎn)錢就可以幫你解決,一種非常方便的解決方式。
文章來源:代代SEO博客
來源地址:https://www.daidaiseo.com/seoti/448.html
申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!