2018.06.13学习笔记】【linux高级知识 12.21-12.24】

12.21 php-fpm的pool

一个Nginx服务器可能运行多个站点,那么php-fpm使用同一个pool资源,当一个站点资源耗尽之后,就有可能会影响所有站点都不能访问。每个站点使用独立的pool,就能够避免这种情况发生。

编辑php-fpm.conf配置文件:在[global]中增加一个pool [lgs.com]

[lgs.com]   //pool名
listen = /tmp/lgs.sock   //每个pool监听的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

验证:ps一下就能看到有两个php-fpm的pool:

php-fpm   6115  0.0  0.4 226640  4716 ?        S    16:10   0:00 php-fpm: pool www
php-fpm   6116  0.0  0.4 226640  4712 ?        S    16:10   0:00 php-fpm: pool lgs.com

然后需要到nginx的虚拟主机配置文件里去配置php-fpm指定的pool

location ~ \.php$
    {
        include fastcgi_params;
        fastcgi_pass unix:/tmp/lgs.sock; //这里指定pool的sock
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /data/wwwroot/default$fastcgi_script_name;  //代理服务器的ip
    }

我们还可以像nginx的虚拟主机配置文件一样,把php-fpm的pool独立出来单独一个配置文件:例如lgs.com的pool配置文件为lgs.conf

先在php-fpm.conf增加include 配置行

include = etc/php-fpm.d/*.conf

再编辑www和lgs.com的pool配置文件分别为 www .conf 和 lgs.conf:

[www]  //www .conf
listen = /tmp/php-fcgi.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

[lgs.com]   //lgs.conf
listen = /tmp/lgs.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

12.22 php-fpm慢执行日志

Nginx有一个很好的特性就是慢执行日志。可以定义php执行超过指定时间,就会记录到慢执行日志中去,记录那个文件那行代码执行过程慢。

在pool的配置文件里配置

vim /usr/local/php-fpm/etc/php-fpm.d/www.conf
request_slowlog_timeout = 2  //php执行超过2秒 记录日志
slowlog = /usr/local/php-fpm/var/log/www-slow.log  //存放日志的目录

验证测试:编辑一个php 的sleep脚本:

vim /data/wwwroot/test.com/sleep.php
<?php
echo "test slow log";
sleep(3);
echo "done";
?>

查看日志:

tail /usr/local/php-fpm/var/log/www-slow.log 
script_filename = /data/wwwroot/test.com/sleep.php
[0x00007fe02657e3e0] sleep() /data/wwwroot/test.com/sleep.php:3

12.23 open_basedir

当服务器运行多个站点时,php-fpm可以使用open_basedir来指定每个站点的目录范围,不能在php.ini中去只能指定一个目录。

vim /usr/local/php-fpm/etc/php-fpm.d/www.conf    //在pool的配置文件中增加一行配置
php_aming_value[open_basedir]=/data/wwwroot/test.com:/tmp/  //指定该站点的网站目录

12.24 php-fpm进程管理

php-fpm的pool配置文件中的关于进程的配置行的说明

vim www.conf
[www]
listen = /tmp/php-fcgi.sock
listen.mode = 666
user = php-fpm
group = php-fpm
pm = dynamic  //定义进程启动方式(dynamic表示动态,static表示静态)

//只有pm设置为dynamic,下面的配置才生效
pm.max_children = 50  //最多启动的子进程数量
pm.start_servers = 20  //开始启动的子进程数量
pm.min_spare_servers = 5  //空闲时最少有几个子进程,到5个就会自动增加
pm.max_spare_servers = 35  //空闲时最多有几个子进程,到35个就会自定清理
pm.max_requests = 500   //一个子进程最多可接受多少个请求,到达500就会自动退出子进程
rlimit_files = 1024   //每个子进程打开的文件句柄个数

转载于:https://my.oschina.net/u/3804114/blog/1830000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值