主题
FastCGI 工作原理
FastCGI 是一种协议,用于将 Web 服务器请求转发给后端应用程序(如 PHP-FPM),实现 Web 与应用分离,提高性能和扩展性。
一、Nginx 与 FastCGI 的交互流程
- 客户端发起 HTTP 请求到 Nginx
- Nginx 判断请求类型(如 .php 文件),将请求转发到 FastCGI 服务器(PHP-FPM)
- PHP-FPM 处理请求,生成响应数据
- FastCGI 将响应返回给 Nginx
- Nginx 将响应发送给客户端
text
客户端 -> Nginx -> FastCGI (PHP-FPM) -> Nginx -> 客户端二、Nginx 配置 FastCGI 示例
nginx
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
三、FastCGI 的优势
- 提高性能:长连接方式处理请求,避免每次启动 CGI 进程
- 支持并发:Nginx 通过 worker 进程可同时处理大量请求
- 分离应用:Web 服务器与后端应用解耦,便于扩展与维护
理解 FastCGI 工作原理后,你可以更好地配置 Nginx 与 PHP-FPM,实现高性能动态 Web 服务。