Nginx 与 PHP-FPM 集成
Nginx 与 PHP-FPM 集成可以高效处理动态 PHP 请求,实现 Web 与应用分离,提高网站性能与可维护性。
一、配置 FastCGI 转发
在 server/location 块中配置 .php 文件处理:
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
`
核心指令说明
- include fastcgi_params:加载标准 FastCGI 参数
- fastcgi_pass:指定 PHP-FPM 监听地址或 Unix Socket
- fastcgi_index:默认 PHP 文件
- fastcgi_param SCRIPT_FILENAME:传递完整脚本路径
二、PHP-FPM 池匹配
确保 Nginx fastcgi_pass 地址与 PHP-FPM 池监听地址一致,例如:
; /etc/php-fpm.d/www.conf
listen = 127.0.0.1:9000
Nginx 可以通过 TCP 或 Unix Socket 与 PHP-FPM 通信。
三、处理请求流程
- 客户端访问 PHP 页面
- Nginx 匹配 location ~ .php$
- 转发请求到 PHP-FPM 池
- PHP-FPM 处理脚本并生成响应
- Nginx 返回响应给客户端
四、安全与优化建议
- 禁止直接访问 PHP 配置文件、日志文件等敏感资源
- 使用 Unix Socket 提升性能并限制访问
- 设置 PHP-FPM 池用户与组为 Nginx 进程用户
- 开启 opcode 缓存(如 Opcache)提高 PHP 性能
- 对静态文件由 Nginx 直接处理,减少 PHP-FPM 负载
通过合理配置 Nginx 与 PHP-FPM 集成,可以实现高性能、稳定且安全的 PHP Web 服务,是动态网站部署的标准做法。
相关内容
- 备份与恢复 本节介绍 Nginx 配置备份与恢复方法,包括配置文件备份、日志备份、快速恢复和灾难恢复策略,保障服务安全可靠。
- 常用命令与服务管理 本节介绍常用的 nginx 命令与服务管理方法,包括启动、停止、重载、日志查看、配置检测等操作,帮助你熟练掌握 nginx 文档中的服务运维要点。
- Nginx 教程:目录结构与配置文件详解 本节 Nginx 教程详细介绍 nginx 目录结构与配置文件组成,帮助你掌握 nginx.conf、sites-enabled、logs 等常见路径及配置含义...
- Nginx 与 Docker 集成 本节介绍 Nginx 与 Docker 的集成方法,包括 Nginx 容器部署、配置卷挂载、端口映射和与后端服务协作,实现容器化高可用 Web 服务。
- FastCGI 工作原理 本节讲解 Nginx 与 FastCGI 的工作原理,包括请求转发、PHP-FPM 处理流程及数据交互方式,帮助你理解 nginx.conf 中动态内容处理机制...
- FastCGI 参数详解 本节详细讲解 Nginx 与 FastCGI 配合时的参数配置,包括 fastcgi_param 指令、标准参数与自定义参数,帮助你精确控制 PHP-FPM 请...