php-fpm服务一般情况下我们只会配置一个php-fpm了,如果我们碰到要实现多实例php-fpm服务要如何来配置呢,下面一起来看看吧。 LNMP或者LNAMP环境的配置这里不做介绍,只讲在LNMP环境的基础上配置多实例的过程。因为我在使用的是LNAMP环境,所以额外编译一份php到/usr/local/php-fpm/,配置文件在/etc/php-fpm/,并在此基础上做的笔记。 先修改三个值:
默认的conf文件可以在php.ini里查找. 假如是:/etc/php-fpm/php-fpm.conf
,有些默认是这路径/etc/php5/fpm/pool.d/www.conf
.
sed -i 's#pm = dynamic#pm = static#' /etc/php-fpm/php-fpm.conf sed -i 's#pm.max_children = 5#pm.max_children = 100#' /etc/php-fpm/php-fpm.conf sed -i 's#;pm.max_requests = 500#pm.max_requests = 200#' /etc/php-fpm/php-fpm.conf
以下为复制php-fpm.conf和php-fpm服务管理脚本的命令
cd /etc/php-fpm/ cp php-fpm.conf php-fpm-1.conf sed -i 's#listen = 127.0.0.1:9000#listen = 127.0.0.1:9001#' php-fpm-1.conf sed -i 's#\[www\]#\[php-fpm-pool-1\]#' php-fpm-1.conf sed -i 's#pid = run/php-fpm.pid#pid = run/php-fpm-1.pid#' php-fpm-1.conf cd /etc/init.d/ cp php-fpm php-fpm-1 sed -i 's#/etc/php-fpm/php-fpm.conf#/etc/php-fpm/php-fpm-1.conf#' php-fpm-1 sed -i 's#/var/run/php-fpm.pid#/var/run/php-fpm-1.pid#' php-fpm-1 service php-fpm-1 restart
执行完上面的命令即复制了一份php-fpm,服务名和配置文件名均为php-fpm-1。
再复制更多份,把上面的命令上的-1替换为-2,listen监听端口往上修改,然后再执行一遍就OK。
然后写一个restart_php_fpm.sh
的文件,内容为
service php-fpm-1 restart service php-fpm-2 restart service php-fpm-3 restart #... ...
可以用来启动和重启所有的php-fpm实例。关闭用命令killall php-fpm即可。 然后是Nginx配置。 在http段加入:
upstream php-fpm-pool { server 127.0.0.1:9001; server 127.0.0.1:9002; server 127.0.0.1:9003; server 127.0.0.1:9004; server 127.0.0.1:9005; } # 修改server段: location ~ .*\.(php|php5)?$ { fastcgi_pass php-fpm-pool; fastcgi_index index.php; include fastcgi.conf; }
配置结束。 多实例在效果上基本等于多台机器的负载均衡,但是我个人还是比较倾向于在单台上配置多实例(累加资源相等的情况下),在一台机器上配置、维护、使用都要方便的多。
stat -c "%a %n" file , 755, 644
ModuleNotFoundError: No module named 'MySQLdb', ...
Ubuntu18.04下使用pyenv安装python报错:BUILD FAILED (Ubun ...
dell提供了工具远程查看服务器硬件状态,可以修改硬件的参数,可以远程连接过去直接修改,就不需要 ...
启动报undefined symbol: EVP_CIPHER_CTX_cleanup错误。op ...
ubuntu开启crontab日志记录及解决No MTA installed, discardi ...
暂时还没有评论,第一个来评论吧!