今天研發(fā)部的同事找到我沐旨。說他們的網(wǎng)站在用域名訪問的時(shí)候?qū)С鑫募霈F(xiàn)504錯(cuò)誤:
nginx 504 Gateway Time-out
然而用IP地址訪問的時(shí)候正常陨仅。讓我?guī)兔纯词遣皇莕ginx配置的問題登钥。
了解了一下他們的應(yīng)用場(chǎng)景施符。導(dǎo)出文件功能首先會(huì)在后臺(tái)根據(jù)各種數(shù)據(jù)生成一個(gè)文件碍舍,這個(gè)文件可能好幾十兆脯厨。然后才會(huì)進(jìn)入下載流程。重現(xiàn)他們問題的時(shí)候發(fā)現(xiàn)作箍,域名訪問的時(shí)候硬梁,最多一分鐘后沒響應(yīng)就返回504 gateway time-out了。所以胞得,估計(jì)是nginx在讀請(qǐng)求時(shí)超時(shí)荧止。
網(wǎng)上各種百度,試過在nginx里面加如下配置:
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 256M;
fastcgi_buffers 8 256M;#8 128
fastcgi_busy_buffers_size 512M;
fastcgi_temp_file_write_size 512M;
測(cè)試無(wú)效阶剑,跟fastcgi沒關(guān)系跃巡。
接著在location里面添加proxy設(shè)置。訪問沒有出現(xiàn)超時(shí)牧愁。問題解決素邪。
proxy_connect_timeout 300s;
proxy_send_timeout 300s; #這個(gè)配置是問題的關(guān)鍵
proxy_read_timeout 300s;
這個(gè)問題主要是nginx讀請(qǐng)求超時(shí)造成的。