教程 nginx tutorial

FastCGI 工作原理

FastCGI 是一种协议,用于将 Web 服务器请求转发给后端应用程序(如 PHP-FPM),实现 Web 与应用分离,提高性能和扩展性。

一、Nginx 与 FastCGI 的交互流程

  1. 客户端发起 HTTP 请求到 Nginx
  2. Nginx 判断请求类型(如 .php 文件),将请求转发到 FastCGI 服务器(PHP-FPM)
  3. PHP-FPM 处理请求,生成响应数据
  4. FastCGI 将响应返回给 Nginx
  5. 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 的优势

  1. 提高性能:长连接方式处理请求,避免每次启动 CGI 进程
  2. 支持并发:Nginx 通过 worker 进程可同时处理大量请求
  3. 分离应用:Web 服务器与后端应用解耦,便于扩展与维护

理解 FastCGI 工作原理后,你可以更好地配置 Nginx 与 PHP-FPM,实现高性能动态 Web 服务。