nginx php配置優化

2021-09-27 05:20:35 字數 814 閱讀 3441

1.問題分析

nginx訪問出現504 gateway time-out,一般是由於程式執行時間過長導致響應超時,例如程式需要執行90秒,而nginx最大響應等待時間為30秒,這樣就會出現超時。 

通常有以下幾種情況導致

1.程式在處理大量資料,導致等待超時。 

2.程式中呼叫外部請求,而外部請求響應超時。 

3.連線資料庫失敗而沒有停止,死迴圈重新連。

出現這種情況,我們可以先優化程式,縮短執行時間。另一方面,可以調大nginx超時限制的引數,使程式可以正常執行。

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

nginx配置

nginx.conf中,設定以下幾個引數,增加超時時間

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) 表示不超時。

如何正確配置Nginx PHP

對很多人而言,配置nginx php無外乎就是搜尋一篇教程,然後拷貝貼上。聽上去似乎也沒什麼問題,可惜實際上網路上很多資料本身年久失修,漏洞百出,如果大家不求甚解,一味的拷貝貼上,早晚有一天會為此付出代價。假設我們用php實現了乙個前端控制器,或者直白點說就是統一入口 把php請求都傳送到同乙個檔案...

如何正確配置Nginx PHP

對很多人而言,配置nginx php無外乎就是搜尋一篇教程,然後拷貝貼上。聽上去似乎也沒什麼問題,可惜實際上網路上很多資料本身年久失修,漏洞百出,如果大家不求甚解,一味的拷貝貼上,早晚有一天會為此付出代價。假設我們用php實現了乙個前端控制器,或者直白點說就是統一入口 把php請求都傳送到同乙個檔案...

如何正確配置 Nginx PHP

對很多人而言,配置nginx php無外乎就是搜尋一篇教程,然後拷貝貼上。聽上去似乎也沒什麼問題,可惜實際上網路上很多資料本身年久失修,漏洞百出,如果大家不求甚解,一味的拷貝貼上,早晚有一天會為此付出代價。假設我們用php實現了乙個前端控制器,或者直白點說就是統一入口 把php請求都傳送到同乙個檔案...