nginx出現504 Gateway Time-out的問題解決

nginx出現504 Gateway Time-out的問題解決

出現該錯誤的原因:
是因爲php頁面消耗的最大內存默認是爲 8M (在PHP的ini件裏可以看到) ,如果文件太大 或圖片太大 在讀取的時候(造成網頁請求超時,也就是瀏覽網站網頁所發出的請求沒有反應或者未響應) 會發生上述錯誤。

1.若nginx採用的是php請求解析服務是ftp,檢查 /etc/php/fpm/php.ini參數

php默認上傳文件大小是8M,在此我修改成100M,可自行適當修改(在此上傳100M以內的文件扔報504,則走下一步)

Upload_max_filesize=100M
Post_max_size=100m
memory_limit=500m

重啓fpm

/etc/init.d/php7.0-fpm restart
或
service php7.0-fpm restart
2.cd /etc/nginx/sites-available/… 進去nginx配置文件添加

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

http{

...
    client_max_body_size 500m;

    fastcgi_connect_timeout 3000;
    fastcgi_send_timeout 3000;
    fastcgi_read_timeout 3000;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;
   server_names_hash_bucket_size 128;
    client_header_buffer_size 1
    large_client_header_buffers 4 256k;
    ...
}
3.還有php-fpm裏的配置文件 /etc/php/7.0/fpm/pool.d -> 編輯www.conf

還有就是php-fpm.conf中max_children與request_terminate_timeout兩個重要參數的設置。這兩個參數的設置需要我們根據PHP程序情況及服務器帶寬狀況綜合考慮並計算出合理準確的值

//在此我僅註釋了此行
;request_terminate_timeout = 0;

成功!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章