欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

PHP+Nginx經常出現(xiàn)502、504原因與解決方法

很多新手剛開始做網(wǎng)站可能感覺不到502,504的問題,當?shù)饶憔W(wǎng)站到達了一定水平的時候,流量起來的時候,你會發(fā)現(xiàn)經常會遇到502、504類似的問題。

一、什么是502狀態(tài)碼?

502 Bad Gateway:作為網(wǎng)關或者代理工作的服務器嘗試執(zhí)行請求時,從上游服務器接收到無效的響應。

二、502 Bad Gateway 原因一般有哪些?

將請求提交給網(wǎng)關如php-fpm執(zhí)行,但是由于某些原因沒有執(zhí)行完畢導致php-fpm進程終止執(zhí)行。這個問題與網(wǎng)關服務如php-fpm的配置有關。

php-fpm.conf配置文件中有兩個參數(shù)就需要你考慮到,分別是max_children和request_terminate_timeout。

max_children最大子進程數(shù),在高并發(fā)請求下,達到php-fpm最大響應數(shù),后續(xù)的請求就會出現(xiàn)502錯誤的??梢酝ㄟ^netstat命令來查看當前連接數(shù)。

request_terminate_timeout設置單個請求的超時終止時間。還應該注意到php.ini中的max_execution_time參數(shù)。當請求終止時,也會出現(xiàn)502錯誤的。

當積累了大量的php請求,你重啟php-fpm釋放資源,但一兩分鐘不到,502又再次呈現(xiàn),這是什么原因導致的呢? 這時還應該考慮到數(shù)據(jù)庫,查看下數(shù)據(jù)庫進程是否有大量的locked進程,數(shù)據(jù)庫死鎖導致超時,前端終止了繼續(xù)請求,但是SQL語句還在等待釋放鎖,這時就要重啟數(shù)據(jù)庫服務了或kill掉死鎖SQL進程了。

三、什么是504狀態(tài)碼?

504 Gateway Time-out:作為網(wǎng)關或者代理工作的服務器嘗試執(zhí)行請求時,未能及時從上游服務器(URI標識出的服務器,例如HTTP、FTP、LDAP)或者輔助服務器(例如DNS)收到響應。

四、504 Gateway Time-out 原因一般有哪些?

504錯誤一般是與nginx.conf 配置有關。主要與以下幾個參數(shù)有關:

fastcgi_connect_timeout

fastcgi_send_timeout

fastcgi_read_timeout

fastcgi_buffer_size

fastcgi_buffers

fastcgi_busy_buffers_size

fastcgi_temp_file_write_size

fastcgi_intercept_errors

特別是前三個超時時間。如果fastcgi緩沖區(qū)太小會導致fastcgi進程被掛起從而演變?yōu)?04錯誤。

五、關于PHP+Nginx經常出現(xiàn)502、504的解決方法

由于不同的原因,解決方法也是不一樣的,一定要根據(jù)實際的情況去分析。例如,以下是我以前遇到的502的相關問題。

1、Nginx 502 Bad Gateway 原因與解決方法

2、Nginx報錯:upstream timed out (110: Connection timed out) 原因與解決方法

今天重點說下我遇到504問題的解決方法。

由于我用的是PHP+Nginx+百度云加速CDN,然后,百度云加速CDN一直給我報504錯誤,我排查了很多也沒有找到原因。

1、最初我以為修改nginx.conf,增加如下“error Connection timed out and 504 error”的代碼可以解決這個問題。

[root@localhost /]# vim nginx.confserver {        listen 80;

        server_name zabbix.gree.com;

        access_log /roobo/logs/nginx/zabbix.gree.com_access.log main;

        error_log /roobo/logs/nginx/zabbix.gree.com_error.log error ;

        root /roobo/webserver/zabbix;        index index.html index.htm index.php;

 

        location / {

            try_files $uri $uri/ /index.php$is_args$args;

        }

        location ~ \.php$ {

            try_files $uri =404;

            include fastcgi.conf;

            fastcgi_pass 10.7.19.195:9000;

        }

 

       #error Connection timed out and 504 error

       large_client_header_buffers 4 16k;

       client_max_body_size 30m;

       client_body_buffer_size 128k;

       fastcgi_connect_timeout 300;

       fastcgi_read_timeout 300;

       fastcgi_send_timeout 300;

       fastcgi_buffer_size 64k;

       fastcgi_buffers   4 32k;

       fastcgi_busy_buffers_size 64k;

       fastcgi_temp_file_write_size 64k;

}

經過測試,并沒有任何效果。

2、我又自信的以為是我用了FirewallD防火墻的原因,結果我關閉它,測試也沒有效果,照樣報504錯誤。

3、最后當再出現(xiàn)504錯誤的時候,我直接暴力操作,殺死php-fpm,再重啟,就可以恢復正常,從而我判斷是php的問題。經過我的排查,發(fā)現(xiàn)是“pm.max_requests”這個參數(shù)的問題,我最初設置的是204000,現(xiàn)在設置的是20400即可恢復正常,沒有再出現(xiàn)504錯誤了,平均負載 Load Average也在正常的范圍類。

4、但是過一段時間后,又會出現(xiàn)“504連接超時”這個問題。

5、最終,經過我?guī)滋斓臏y試,我最終php-fpm.conf參數(shù)調整如下即恢復正常:

注意:這里我順便說一下,我以前配置的參數(shù)是 pm.max_spare_servers = 60; pm.max_requests = 204800;

pm = dynamic

pm.start_servers = 20

pm.min_spare_servers = 20

pm.max_spare_servers = 30

pm.max_requests = 20480

總結:

通俗點講,設置“pm.max_requests”參數(shù)小一點,就是讓php-fpm能夠自動的頻繁重啟,關于具體設置多大?要根據(jù)你的服務器配置以及流量狀況來分析,自己可以去做測試。

經過我的的測試,我發(fā)現(xiàn)pm.max_requests設置太大會出現(xiàn)504 Gateway Time-out,pm.max_requests設置太小,平均負載 Load Average又會超出正常值的范圍,甚至更高。

原文鏈接:

評論可見,查看隱藏內容


本文內容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉載請注明,如有侵權,聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18579471.html

評論列表
狡猾的小狐貍

在網(wǎng)站流量增長時,502 Bad Gateway和504 Gateway Time-out問題頻繁出現(xiàn)的原因是什么?

2025-07-06 16:44:30回復

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄