php-fpm设置进程池
2017-01-17 14:49:05
php-fpm设置进程池
设置多个进程池,每个进程池分配不同的站点,可以做到一个站占用资源过多导致其它站也不能访问的尴尬情况。这使得网站可以更好的运行,如果某个站点受到少量CC攻击,也不至于拖跨所有的站点
第一步增加站点用户:
Shell
1 |
useradd fourfire -M -n -s /sbin/nologin -g www |
-M:不生成家目录,因为我们不需要此用户登录
-s:预设bash,默认是 /bin/bash,由于我们不需要此用户登录所以直接使用/sbin/nologin
-n:取消建立以用户名称为名的群组
-g:指定用户所属的群组
第二步在php-fpm文件中增加用户进程池:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[fourfire] user=fourefire group=www listen=/tmp/fourfire.sock pm=dynamic ;当pm=dynamic,pm.max_children不使用,但是值也一定要存在 ;当pm=static,只使用pm.max_children pm.max_children=10 pm.start_servers=2 pm.min_spare_servers=1 pm.max_spare_servers=10 pm.process_idle_timeout=15 pm.max_requests=500 |
第三步在nginx中修改 fastcgi_pass 为 unix 域协议
Shell
1 |
fastcgi_pass unix:/tmp/fourfire.sock; |
最后一步:
用 ./php-fpm -t 配置通过就直接重启 service php-fpm restart,你的重启方式可能与我的不同
用./nginx -t 测试配置是否通过,若通过直接重启./nginx -s reload
将网站目录设置权限:0755 即:drwxr-xr-x。使只有fourfire这个用户可以写入
注意:重启的顺序不能颠倒,要先重启php-fpm生成/tmp/fourfire.sock后,./nginx -t 才会测试ok
发表评论: