ubuntu14.04 nginx報upstream timed out 問題原因,解決辦法
訪問php時一直出現http 504Gateway Time-out錯誤
錯誤日誌裡看到幾百個 upstream timed out 的錯誤
2016/11/01
10:32:45 [error] 3897#0: *1831129 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 42.92.152.137, server: xxx.xxx.cn, request: “GET / HTTP/1.1″, upstream: “fastcgi://unix:/var/run/php5-fpm.sock:
從日誌的表示來看應該不是nginx的問題,而是 fast-cgi 執行超時沒有及時返回資料到ngnix的問題. 可web和資料庫負載都不高,不應該是程式超時的問題.
一般看來, 這種情況可能是由於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;
NGINX反代理超時報錯,解決方法:
server {
listen 80;
server_name *.xywy.com ;
large_client_header_buffers 4 16k;
client_max_body_size 300m;
client_body_buffer_size 128k;
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
proxy_buffer_size 64k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
……………………
}
service nginx restartvi /etc/php5/fpm/php-fpm.conf 增加以下配置
後提示變成502了,
一看php的錯誤日誌如下:
2016/11/01 10:36:46 [error] 5471#0: *238740 connect() to unix:/var/run/php5-fpm.sock failed (11: Resource
temporarily unavailable) while connecting to upstream, client: 42.92.152.137, server:
*.*.cn, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "*.*.cn"
肯定是之前修改了php-fpm.conf沒有重啟php-fpm的緣故
重啟 /etc/init.d/php5-fpm restart
問題解決