首页 > 代码

Nginx为每个网站单独创建独立的 PHP-FPM 池(pool)

为每个网站单独创建独立的 PHP-FPM 池(pool),例如:wenxian8.com。这是中高级服务器性能优化和资源隔离的常用做法,下面我详细解释 每一步的意义和好处:

【单独创建独立的 PHP-FPM 池好处】
资源隔离:每个网站单独一个 PHP-FPM 进程池,互不影响。某个站挂了不会拖垮其他站。
精准调优:不同网站可以设置不同的 pm.max_children、pm 模式,甚至 php_admin_value。比如流量大的网站设置多些进程,小网站设置少些。
安全性更高:open_basedir 限定每站只能访问自己目录,防止跨站读写。Socket 通讯更快:listen = /tmp/php-cgi-wenxian8.sock 比端口方式(如 127.0.0.1:9000)效率更高,尤其本地通信。


第一步:在/www/server/php/74/etc/php-fpm.d/ 或:/www/server/php/80/etc/php-fpm.d/
下创建 wenxian8.com.conf,然后复制下面的代码保存:


[wenxian8]
user = www
group = www
listen = /tmp/php-cgi-wenxian8.sock
listen.owner = www
listen.group = www
listen.mode = 0660
pm = ondemand
pm.max_children = 80
pm.process_idle_timeout = 10s
pm.max_requests = 500
php_admin_value[open_basedir] = /www/wwwroot/wenxian8.com/:/tmp/

第二步
确保在/www/server/php/74/etc/php-fpm.conf 里有加上引用


include=/www/server/php/74/etc/php-fpm.d/*.conf

如果没加请加上。

第三步
/www/server/panel/vhost/nginx 下打开wenxian8.com.conf
(也可以:在宝塔-网站-设置-配置文件内)
找到并注销掉:include enable-php-74.conf;
替换成:


    location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass unix:/tmp/php-cgi-wenxian8.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

重启:


systemctl restart php-fpm-74
/etc/init.d/php-fpm-74 restart

查看是否生效:


ps aux | grep php-fpm

如果能找到 php-fpm: pool wenxian8 就成功了。

查看当前占用最多资源的进程


top

使用以下命令查看哪个网站的 PHP-FPM 进程在占用资源:


ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | grep php

找出 Nginx 正在处理的请求(含访问路径)


  • Nginx_遇到疯狂蜘蛛爬网站,拉崩服务器
  • 遇到疯狂蜘蛛爬网站,拉崩服务器;可以通过下面的限速方式, 【第一步】在主 nginx.conf 文件的 htt […]

  • Nginx服务器限制蜘蛛爬虫\过度分页\阻止执行 uploads 里的 php
  • 【拒绝恶意蜘蛛爬虫】 /www/server/panel/vhost/nginx下找到如wenxian8.co […]

  • 用了cloudeflare域名解析,如何在Nginx 批量 IP 屏蔽
  • 【Nginx 批量 IP 屏蔽】 注意,如果你用了cloudeflare域名解析,那就要注意先找到真实攻击者I […]

  • 服务器上mysql数据库很多,某个库把整台服务器拉爆了,如何定位找到罪魁?
  • 服务器上mysql数据库很多,某个数据库把整台服务器拉爆了,如何定位找到罪魁? 先在 MySQL 里把“正在烧 […]

  • 极速打包几百万文件成.zip,比传统方式快几十倍
  • 假如,一个文件夹里面有几十上百万张图片,要把这个文件夹打包成.zip,按传统的windows自带的工具压缩或普 […]

  • Rufus是什么?为什么很多人推荐
  • Rufus 是一个非常流行的Windows 平台下用于创建启动U盘(Bootable USB)的免费工具。官网 […]