php-fpm的pool

技術小阿哥發表於2017-11-27

Pool池是支援定義多個pool的。每個pool可以監聽不同的sock、tcp/ip。那nginx有好幾個站點,每個站點可以使用一個pool。這樣做的好處是當其中的一個php502(可能是php資源不夠)了。如果所有的網站使用同一個池,那其中一個網站發生一些故障,比如程式設計師寫的一些程式有問題,就會把php資源耗盡,這樣的結果就是其他站點的php也會502。所以有必要把每一個站點隔離開。每個pool的名字要唯一。

vim /usr/local/php/etc/php-fpm.conf//在[global]部分增加

include = etc/php-fpm.d/*.conf //可以類似nginx的vhost把一個個池拆成不同檔案

mkdir /usr/local/php/etc/php-fpm.d/

cd /usr/local/php/etc/php-fpm.d/

vim www.conf //內容如下

[www]

listen = /tmp/www.sock

listen.mode=666

user = php-fpm

group = php-fpm

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

rlimit_files = 1024

繼續編輯配置檔案

vim lsx.conf //內容如下

[lsx]

listen = /tmp/lsx.sock

listen.mode=666

user = php-fpm

group = php-fpm

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

rlimit_files = 1024

/usr/local/php/sbin/php-fpm –t

/etc/init.d/php-fpm reload

ls /tmp/

1.log-20171211 lsx.sock php-fcgi.sock

ps -axu|grep php

root 57940 14.1 0.9 227764 4928 ? Ss 15:55 0:01 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)

php-fpm 57941 2.3 0.9 227740 4712 ? S 15:55 0:00 php-fpm: pool www

php-fpm 57942 2.5 0.9 227740 4712 ? S 15:55 0:00 php-fpm: pool www

php-fpm 57943 2.8 0.9 227740 4712 ? S 15:55 0:00 php-fpm: pool www

php-fpm 57944 2.2 0.9 227740 4712 ? S 15:55 0:00 php-fpm: pool lsx

php-fpm 57947 3.0 0.9 227740 4712 ? S 15:55 0:00 php-fpm: pool lsx

php-fpm 57948 2.0 0.9 227740 4712 ? S 15:55 0:00 php-fpm: pool lsx

該怎麼使用它們呢?

vim /usr/local/nginx/conf/nginx.conf //刪除server部分

增加

include vhost/*.conf //在conf下面建立一個vhost子目錄

[root@localhost conf]# pwd

/usr/local/nginx/conf

mkdir vhost

cd vhost/ 

pwd

/usr/local/nginx/conf/vhost

ls //在這兩個fastcgi_pass分配不同的sock

lshx.conf lsx.conf

本文轉自 蝦米的春天 51CTO部落格,原文連結:http://blog.51cto.com/lsxme/2059564,如需轉載請自行聯絡原作者


相關文章