php-fpm配置多个进程池

背景:
在用Jmeter测试时,在高并发时,php-fpm会出现unix socket的问题。在nginx的error log能查看到错误。在网上查了资料,原因可能是unix socket方式不太稳定。把php-fpm改成用ip:port的方式,只是有所改善,但是仍然不太理想。
因为是在高并发时才会出现不稳定的问题,所以猜想使用多个unix socket通信应该可以解决,所以尝试使用多个php-fpm进程池不同的unix socket,配合nginx upstream。
注意1:这样配置的主要目的是减少因为单个unix socket不稳定而导致大量的502 bad gateway报错。实际上并不会提高站点的处理速度。
注意2:只是在本地环境做的一次实践尝试。具体的优化其实还是要根据具体生产环境来做。

环境:
Ubuntu
php7.2
nginx1.14

php和nginx都是用apt-get安装的,配置文件都是按默认路径。

1.修改php-fpm配置

复制原来的进程池配置。
cp /etc/php/7.2/fpm/pool.d/www.conf /etc/php/7.2/fpm/pool.d/www1.conf

修改www1.conf 的listen socket
listen = /run/php/php7.2-fpm1.sock
其实可以把sock放到/dev/shm目录下使用的内存读写更快,这里不展开。

重启php-fpm,再查看一下php-fpm的进程
ps -aux |grep php
在这里插入图片描述
可以看到不同的进程池。

2.修改nginx配置

修改/etc/nginx/config.conf
http中增加upstream配置。(当前是用php_backend这个名字)
官网资料:http://nginx.org/en/docs/http/ngx_http_upstream_module.html
截图中注释了ip:port的连接方式,只使用unix socket的方式。
在这里插入图片描述
修改location的配置
在这里插入图片描述
重启nginx。
再次运行Jmeter,在高并发的时候,有所改善。和之前相同并发数时也没再返回502。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP-FPM(FastCGI Process Manager)是一个用于管理 PHP FastCGI 进程的工具,它可以提高 PHP 应用程序的性能和稳定性。下面是 PHP-FPM 配置文件的详细解释: 1. `listen`:指定 PHP-FPM 监听的地址和端口号,可以是 IP 地址、Unix 套接字文件路径或者端口号。例如:`listen = 127.0.0.1:9000` 或 `listen = /var/run/php-fpm.sock`。 2. `user` 和 `group`:指定 PHP-FPM 进程运行的用户和用户组。例如:`user = www-data` 和 `group = www-data`。 3. `pm`:指定 PHP-FPM进程管理方式,可以是 `static`、`dynamic` 或者 `ondemand`。其中,`static` 表示静态进程数,`dynamic` 表示动态进程数,`ondemand` 表示按需生成进程。例如:`pm = dynamic`。 4. `pm.max_children`:指定 PHP-FPM 动态进程模式下最大子进程数。例如:`pm.max_children = 50`。 5. `pm.start_servers`:指定 PHP-FPM 动态进程模式下启动时的子进程数。例如:`pm.start_servers = 5`。 6. `pm.min_spare_servers` 和 `pm.max_spare_servers`:指定 PHP-FPM 动态进程模式下空闲进程的最小和最大数量。例如:`pm.min_spare_servers = 2` 和 `pm.max_spare_servers = 10`。 7. `pm.process_idle_timeout`:指定 PHP-FPM 进程空闲超时时间。例如:`pm.process_idle_timeout = 10s`。 8. `pm.max_requests`:指定 PHP-FPM 进程处理的最大请求数,达到该数量后进程将被重启。例如:`pm.max_requests = 500`。 9. `access.log` 和 `slowlog`:分别指定 PHP-FPM 访问日志和慢日志的路径。例如:`access.log = /var/log/php-fpm/access.log` 和 `slowlog = /var/log/php-fpm/slow.log`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值