教程 nginx tutorial

优化 PHP 性能与安全

在 Nginx 与 PHP-FPM 集成中,合理优化 PHP 性能并加强安全性是保证 Web 服务高效稳定运行的关键。

一、性能优化

1. 启用 Opcode 缓存

PHP 提供 Opcache,可缓存编译后的 PHP 字节码,减少解析开销:

ini
; php.ini
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2

`

2. 调整 PHP-FPM 池配置

  • pm = dynamic,合理设置 max_children、start_servers、min_spare_servers 和 max_spare_servers
  • 根据服务器内存与并发量优化进程数量

3. 静态资源由 Nginx 直接处理

  • 图片、CSS、JS 等静态文件不经过 PHP-FPM
  • 使用 location ~* \.(jpg|png|css|js)$ 设置缓存与压缩

4. 开启 gzip 压缩

nginx
http {
    gzip on;
    gzip_types text/plain text/css application/javascript application/json;
}

减少网络传输流量,提高加载速度。


二、安全优化

1. 限制文件访问

nginx
location ~ /\.ht {
    deny all;
}

禁止访问敏感文件,如 .htaccess。

2. PHP-FPM 用户权限

  • 设置 pool 用户与 Nginx 进程用户一致
  • 避免使用 root 运行 PHP-FPM

3. FastCGI 安全设置

  • 设置 open_basedir 限制 PHP 访问路径
  • 禁止 PHP 执行非必要命令
ini
php_admin_value[open_basedir] = /var/www/html:/tmp/
php_admin_flag[allow_url_fopen] = off

4. 限制请求大小与超时

nginx
client_max_body_size 10M;
fastcgi_read_timeout 300;

防止大文件上传或慢速请求造成服务阻塞。


通过以上优化措施,可以显著提升 Nginx 与 PHP-FPM 动态请求性能,同时降低潜在安全风险,保障网站稳定运行。