Nginx 502 Bad Gateway錯誤的解決辦法
阿新 • • 發佈:2019-02-14
request_terminate_timeout執行的時間為60秒,也就是1分鐘。
#################################################
Mar 01 14:39:21.715825 [NOTICE] fpm_got_signal(), line 48: received SIGCHLD
Mar 01 14:39:21.715899 [NOTICE] fpm_children_bury(), line 215: child 11947 (pool default) exited with code 0 after 175.443305 seconds from start
4、
# vi /etc/sysctl.conf
底部新增
fs.file-max=65500
經過以上修改,重啟PHP。/usr/local/webserver/php/sbin/php-fpm restart
在檢視ulimit -n 是否生效,否則重啟伺服器或者/etc/sysctl.conf、/etc/security/limits.conf的配置生效
到目前為止還沒有出現過以上的報錯資訊。一切執行正常。
#################################################
網站執行環境是Nginx +php fastcgi模式的。這幾天執行一直不穩定,總是出錯,報502錯誤。
今天跟以前的同事請教了一下,他告訴我檢查一下php-fpm的日誌,那裡記錄了很多有用的資訊。
於是我檢查了一下,發現確實有很多報錯資訊:
Sep 30 08:32:23.289973 [NOTICE] fpm_unix_init_main(), line 271: getrlimit(nofile): max:51200, cur:51200
如果和nginx.conf : worker_rlimit_nofile 65500 ; 不一致必須檢查,設定重啟服務
Mar 01 14:39:15.881047 [NOTICE] fpm_children_make(), line 352: child 12364 (pool default) startedMar 01 14:39:21.715825 [NOTICE] fpm_got_signal(), line 48: received SIGCHLD
Mar 01 14:39:21.715899 [NOTICE] fpm_children_bury(), line 215: child 11947 (pool default) exited with code 0 after 175.443305 seconds from start
有的報錯資訊,就好說了,直接上網查資訊。
經過搜尋,最後總結出以下幾條優化策略:
1、提升伺服器的檔案控制代碼開啟開啟
# vi /etc/security/limits.conf 加上
* soft nofile 65500
* hard nofile 65500
2、提升nginx的程序檔案開啟數
nginx.conf : worker_rlimit_nofile 65500;
3、修改php-fpm.conf檔案,主要需要修改2處。
命令 ulimit -n 檢視限制的開啟檔案數,php-fpm.conf 中的選項rlimit_files 確保和此數值一致。
<value name=”max_requests”>10240</value>
<value name=”rlimit_files”>65500</value>
# vi /etc/sysctl.conf
底部新增
fs.file-max=65500
經過以上修改,重啟PHP。/usr/local/webserver/php/sbin/php-fpm restart
在檢視ulimit -n 是否生效,否則重啟伺服器或者/etc/sysctl.conf、/etc/security/limits.conf的配置生效
到目前為止還沒有出現過以上的報錯資訊。一切執行正常。