伺服器出現502的原因是連接逾時,我們向伺服器發送請求,由於伺服器目前連結太多,導致伺服器方面無法給於正常的回應 , 產生此類報錯。
因此如果你伺服器並發量非常大,那隻能先增加機器,然後按以下方式優化會取得更好效果; 但如果你並發不大卻出現502 ,一般都可以歸結為配置問題,腳本超時問題。
1、php-fpm 進程數不夠用
使用netstat -napo |grep "php-fpm" | wc -l 看目前fastcgi 進程個數,如果個數接近conf 裡配置的上限,就需要調高進程數。
但也不能無休止調高,可以根據伺服器記憶體情況,可以把 php-fpm 子進程數調到 100 或以上,在 4G 記憶體的伺服器上 200 就可以。
2、調高調高 linux 核心開啟檔案數
可以使用這些指令( 必須是root 帳號)
echo 'ulimit -HSn 65536'>> /etc/profile echo 'ulimit -HSn 65536'>> /etc/rc.local source /etc/profile
#3、腳本執行時間逾時
如果腳本因為某些原因長時間等待不返回,導致新來的請求不能處理,可以適當地調小如下配置。
nginx.conf 裡面主要是如下:
fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300;
php-fpm.conf 裡如要是如下:
request_terminate_timeout =10s
4、快取設定比較小
修改或增加配置到nginx.conf
proxy_buffer_size 64k; proxy_buffers 512k; proxy_busy_buffers_size 128k;
推薦教學:PHP影片教學
#以上是php502是什麼問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!