nginx 依赖 php-fpm 通过 fastcgi 协作处理 php,需确保服务运行、监听地址一致、nginx 正确转发、启用 opcache 与 fastcgi 缓存,并调优 php-fpm 进程池参数。

Nginx 本身不解析 PHP,必须靠 PHP-FPM 通过 FastCGI 协议协作完成动态网页处理。高效的关键不在“装上就行”,而在于通信顺畅、资源匹配、路径准确、缓存启用——四者缺一不可。
确保 PHP-FPM 正常运行并监听正确地址
这是整个链路的起点,502 错误大多源于此:
- 安装后立即检查服务状态:
systemctl status php*-fpm(如php8.2-fpm),确认为 active (running) - 查看监听地址:
sudo ss -tulpn | grep ':9000\|php.*sock',确认是 Unix 套接字(推荐,如/run/php/php8.2-fpm.sock)还是 TCP(127.0.0.1:9000) - 编辑
/etc/php/8.2/fpm/pool.d/www.conf,确保三行一致:listen = /run/php/php8.2-fpm.socklisten.owner = www-datalisten.group = www-data
- 重启服务:
sudo systemctl restart php8.2-fpm
在 Nginx 配置中精准转发 PHP 请求
只写对 location 规则还不够,关键参数一个不能少:
- 在
server块内添加或核对以下配置(以 Unix Socket 为例):location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } -
SCRIPT_FILENAME必须完整、可访问——它告诉 PHP-FPM 执行哪个物理文件,路径错误直接 404 或 500 - 避免用
root指令在 location 块里重复定义路径,优先统一在 server 级设置root /var/www/html; - 测试配置语法:
sudo nginx -t,再重载:sudo systemctl reload nginx
启用 OPcache 和 FastCGI 缓存提升响应效率
不缓存的 PHP 是“每次从头编译”,高并发下极易拖垮性能:
- 开启 OPcache(编辑
/etc/php/8.2/fpm/php.ini):opcache.enable=1 opcache.memory_consumption=128 opcache.max_accelerated_files=10000 opcache.validate_timestamps=0 ; 生产环境务必关闭文件检查
- 在 Nginx 主配置中启用 FastCGI 缓存(全局生效):
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=phpcache:100m inactive=60m; fastcgi_cache_key "$scheme$request_method$host$request_uri";
- 在 server 或 location 块中调用缓存:
fastcgi_cache phpcache; fastcgi_cache_valid 200 301 302 10m; fastcgi_cache_use_stale error timeout updating;
按服务器规格调优 PHP-FPM 进程池
默认配置适合开发,生产环境必须调整,否则不是资源浪费就是请求排队:
- 编辑
/etc/php/8.2/fpm/pool.d/www.conf,推荐动态模式(pm = dynamic):pm.max_children = 50 pm.start_servers = 10 pm.min_spare_servers = 8 pm.max_spare_servers = 20 pm.max_requests = 500 ; 防止内存泄漏,执行500次后自动重启worker
- 内存估算参考:每个 PHP-FPM worker 平均占用 20–30MB,50 个约需 1–1.5GB 内存
- 若用 TCP 连接(非 socket),同步调整
listen.backlog = 1024,避免连接被丢弃
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











