最近做的 NGINX + PHP-FPM 优化,记录一下,留待后用。
测试环境,8 核 CPU,64G 内存。
1、PHP-FPM 配置文件
listen = 127.0.0.1:9000 修改为 listen = /tmp/php-fpm.sock
listen.backlog 取消注释,并修改值为 102400
pm = dynamic 修改为 pm = static
pm.max_children 的值修改为 200
2、启动多个 PHP-FPM 实例
复制 php-fpm.conf 配置文件
cp php-fpm.conf php-fpm.1.conf
修改复制的 php-fpm.1.conf
listen = /tmp/php-fpm.sock 修改为 listen = /tmp/php-fpm.1.sock
建议启动的 PHP-FPM 实例数量与 CPU 核心数量一致。
3、NGINX 配置文件
worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
worker_rlimit_nofile 204800;
events {
use epoll;
worker_connections 204800;
}
upstream phpbackend {
server unix:/tmp/php-fpm.sock
server unix:/tmp/php-fpm.1.sock
}
server {
default backlog = 102400;
location ~ .php$ {
fastcgi_pass phpbackend;
include fastcgi_params;
}
}
4、修改系统打开文件数
打开 /etc/security/limits.conf 文件,添加:
* soft nofile 65535
* hard nofile 65535
修改完成需要重启服务器生效!并可使用下面命令查看是否生效:
ulimit -n