nginx+php配置優化

1.問題分析php

nginx訪問出現504 Gateway Time-out,通常是因爲程序執行時間過長致使響應超時,例如程序須要執行90秒,而nginx最大響應等待時間爲30秒,這樣就會出現超時。 nginx

  

一般有如下幾種狀況致使數據庫


1.程序在處理大量數據,致使等待超時。 ide

2.程序中調用外部請求,而外部請求響應超時。 php-fpm

3.鏈接數據庫失敗而沒有中止,死循環從新連。優化


出現這種狀況,咱們能夠先優化程序,縮短執行時間。另外一方面,能夠調大nginx超時限制的參數,使程序能夠正常執行。spa


對於訪問超時的設定,nginx與php都有相關的設置,能夠逐一進行修改。orm

2.解決方法

nginx配置進程


nginx.conf中,設置如下幾個參數,增長超時時間it


fastcgi_connect_timeout 

fastcgi鏈接超時時間,默認60秒


fastcgi_send_timeout 

nginx 進程向 fastcgi 進程發送請求過程的超時時間,默認值60秒


fastcgi_read_timeout 

fastcgi 進程向 nginx 進程發送輸出過程的超時時間,默認值60秒 



php配置


php.ini


max_execution_time 

php腳本最大執行時間 

  

php-fpm


request_terminate_timeout 

設置單個請求的超時時間


  

php程序中可加入set_time_limit(seconds)設置最長執行時間


例如 set_time_limit(0) 表示不超時。

相關文章
相關標籤/搜索