LNMP-php-fpm定义多个pool

在php环境中,一个站点可以引用多个pool池,避免多个站点共同使用单个pool池进程,导致pool进程用完,用户访问站点出现502情况。单个pool池最大可以定义50个进程同时使用。
 
 
1:编写php-fpm配置文件
[root@host2 ~]# vim /usr/local/php-fpm/etc/php-fpm.conf
说明:php-fpm也是可以像Nginx定义include的
加入以下红色内容
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
include = etc/php-fpm.d/*.conf
 
2:创建php-fpm的include目录
[root@host2 ~]# mkdir /usr/local/php-fpm/etc/php-fpm.d
 
3:创建test.com和abc.com的php站点pool文件
[root@host2 ~]# vim /usr/local/php-fpm/etc/php-fpm.d/test.conf
加入以下内容
[test]
listen = /tmp/test.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
 
[root@host2 ~]# vim /usr/local/php-fpm/etc/php-fpm.d/abc.conf
加入以下内容
[abc]
listen = /tmp/abc.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
 
4:php-fpm的conf文件编写完成后可通过-t选项检查是否有误
[root@host2 ~]# /usr/local/php-fpm/sbin/php-fpm -t
[08-Oct-2019 07:52:15] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
 
5:重启php-fpm服务
[root@host2 ~]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
 
 
6:Nginx虚拟主机引用php-fpm,一个站点对应一个配置文件pool池
[root@host2 ~]# vim /usr/local/nginx/conf/vhosts/test.conf
加入以下红色字段内容
server{
listen 80;
server_name www.test.com;
access_log /tmp/test.com-access.log;
error_log /tmp/test.com-error.log;
root /data/www/test_com;
 
location ~ \.php$ {
root html;
fastcgi_pass unix:/tmp/test.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www/test_com$fastcgi_script_name;
include fastcgi_params;
}
}
 
 
[root@host2 ~]# vim /usr/local/nginx/conf/vhosts/abc.conf
加入以下红色字段内容
server{
listen 80;
server_name www.abc.com;
access_log /tmp/abc.com-access.log;
error_log /tmp/abc.com-error.log;
root /data/www/abc_com;
 
location ~ \.php$ {
root html;
fastcgi_pass unix:/tmp/abc.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www/abc_com$fastcgi_script_name;
include fastcgi_params;
}
}
 
 
6:查看进程是否有abc、test的php-fpm pool池
[root@host2 ~]# ps aux |grep php-fpm
root 7863 0.0 0.2 229568 5008 ? Ss 07:53 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm 7864 0.0 0.2 229508 4736 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7865 0.0 0.2 229508 4736 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7866 0.0 0.2 229508 4736 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7867 0.0 0.2 229508 4736 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7868 0.0 0.2 229508 4740 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7869 0.0 0.2 229508 4740 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7870 0.0 0.2 229508 4740 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7871 0.0 0.2 229508 4740 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7872 0.0 0.2 229508 4740 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7873 0.0 0.2 229508 4740 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7874 0.0 0.2 229508 4740 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7875 0.0 0.2 229508 4740 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7876 0.0 0.2 229508 4740 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7877 0.0 0.2 229508 4740 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7878 0.0 0.2 229508 4740 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7879 0.0 0.2 229508 4740 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7880 0.0 0.2 229508 4744 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7881 0.0 0.2 229508 4744 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7882 0.0 0.2 229508 4744 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7883 0.0 0.2 229508 4744 ? S 07:53 0:00 php-fpm: pool abc
php-fpm 7884 0.0 0.2 229508 4740 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7885 0.0 0.2 229508 4740 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7886 0.0 0.2 229508 4740 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7887 0.0 0.2 229508 4740 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7888 0.0 0.2 229508 4744 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7889 0.0 0.2 229508 4744 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7890 0.0 0.2 229508 4744 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7891 0.0 0.2 229508 4744 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7892 0.0 0.2 229508 4744 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7893 0.0 0.2 229508 4744 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7894 0.0 0.2 229508 4744 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7895 0.0 0.2 229508 4744 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7896 0.0 0.2 229508 4748 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7897 0.0 0.2 229508 4748 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7898 0.0 0.2 229508 4748 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7899 0.0 0.2 229508 4748 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7900 0.0 0.2 229508 4748 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7901 0.0 0.2 229508 4748 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7902 0.0 0.2 229508 4748 ? S 07:53 0:00 php-fpm: pool test
php-fpm 7903 0.0 0.2 229508 4748 ? S 07:53 0:00 php-fpm: pool test
root 7991 0.0 0.0 112664 996 pts/2 S+ 07:55 0:00 grep --color=auto php-fpm
 
上面显示可以看出test和abc的pool池,各有20个进程在运行,如果单个pool池站点的20个进程都在使用中,那么用户访问网站会出现502,最大进程数可以设置50个。
posted @ 2019-10-08 23:04  一颗小豆子  阅读(736)  评论(0编辑  收藏  举报