回覆列表
  • 1 # 使用者8607880626926

    502錯誤原因分析:

    1、這類錯誤常見於Nginx+PHP的Web架構,Nginx將請求提交給閘道器PHP-FPM執行,但是由於某些原因請求沒有執行完畢導致PHP-FPM程序終止執行。說到此,這個問題就很明瞭了,與閘道器服務如PHP-FPM的配置有關了。

    2、php-fpm.conf配置檔案中有兩個引數就需要你考慮到,分別是max_children和request_terminate_timeout。

    3、max_children最大子程序數,在高併發請求下,達到php-fpm最大響應數,後續的請求就會出現502錯誤的。可以透過netstat命令來檢視當前連線數。

    4、request_terminate_timeout設定單個請求的超時終止時間。還應該注意到php.ini中的max_execution_time引數。當請求終止時,也會出現502錯誤的。

    5、當積累了大量的php請求,你重啟php-fpm釋放資源,但一兩分鐘不到,502又再次呈現,這時還應該考慮到資料庫,檢視下資料庫程序是否有大量的locked程序,資料庫死鎖導致超時,前端終止了繼續請求,但是SQL語句還在等待釋放鎖,這時就要重啟資料庫服務了或kill掉死鎖SQL程序了。

    6、所以在調整max_children和request_terminate_timeout、max_execution_time也需要考慮到伺服器資源使用情況及應用程式碼sql執行效率情況,需要綜合衡量。502BadGateway:伺服器作為閘道器或者代理時,為了完成請求訪問下一個伺服器,但該伺服器返回了非法的應答。亦說Web伺服器用作閘道器或代理伺服器時收到了無效響應。

  • 中秋節和大豐收的關聯?
  • 600字作文,我和名著有個約會?