99精品国产综合久久久久五月天,免费观看欧美大片毛片不用播放器 ,AV无码理论片在线观看免费网站,国产精品国产成人国产三级
標題:
[教程]
轉_LNMP 502 使用 upstream 和 fastcgi_next_upstream 可以極大緩解
[打印本頁]
作者:
looes
時間:
2012-5-2 14:36
標題:
轉_LNMP 502 使用 upstream 和 fastcgi_next_upstream 可以極大緩解
本文針對PHP ver 5.3.6 or Higher,其它未測試過。
1. 使用不同端口或sock啟動多個php-fpm主進程
假設使用不同配置文件啟動3個使用sock的php-fpm主進程
#/usr/local/php/sbin/php-fpm --fpm-config /usr/local/php/etc/php-fpm.1.conf
#/usr/local/php/sbin/php-fpm --fpm-config /usr/local/php/etc/php-fpm.2.conf
#/usr/local/php/sbin/php-fpm --fpm-config /usr/local/php/etc/php-fpm.3.conf
復制代碼
這3個配置文件*.conf中,唯一不同的是設置pid文件和sock名字,假設為php-cgi.1.sock php-cgi.2.sock php-cgi.3.sock
那么啟動之后,就在相應目錄出現php-cgi.1.sock php-cgi.2.sock php-cgi.3.sock這3個sock,我是在默認/tmp下
如果你設置的都正常,ps auf是可以看到有3個主進程的
2. 修改Nginx的配置文件以使用進程池模式
在nginx.conf的http段根據實際php-fpm進程情況增加代碼:
upstream unix__tmp_php_cgi_sock{
server unix:/tmp/php-cgi.1.sock;
server unix:/tmp/php-cgi.2.sock;
server unix:/tmp/php-cgi.3.sock;
}
fastcgi_next_upstream error timeout invalid_header http_503;
復制代碼
這樣我們就建立了一個可以根據健康狀況輪詢并可以重試的資源池。
3. 然后呢?
在需要執(zhí)行php程序的原來代碼中,原來代碼舉例:
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/tmp/php-cgi.sock;
}
復制代碼
或原來這樣
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
}
復制代碼
修改新的,如下這樣即可:
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix__tmp_php_cgi_sock;
}
復制代碼
重啟Nginx,生效。
4. 注意事項
步驟1中啟動的各個php-fpm主進程,只要死不光,nginx就可以正常執(zhí)行php,也就是說,如果有的異常退出了,基本也不影響網站運行。
步驟2中fastcgi_next_upstream那行的參數,不需要加http_502,實際你也加不上去的,不支持。
步驟3中,原有的每段類似這種location ~ \.php$ {代碼都需要對fastcgi_pass這行根據示例改造。
步驟1中的.conf配置文件,每個主線程的children,根據內存情況設置2~n個,據說越多越好,但是內存越用越多。
經過本方案的調整,請注意,你原有的所謂service php-fpm和502監(jiān)控腳本之類的東西,都需要重新修改,如果你還想用。當然,對技術宅來說,如果操作本方案那是運用自如,消化吸收。
作者:
hackeradrian
時間:
2012-5-2 16:36
不錯不錯
歡迎光臨 WDlinux官方論壇 (http://fudaan.com/bbs/)
Powered by Discuz! 7.2