You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nginx-PHP服务器中直接配置/api请求转发至fastcgi_pass?

直接将/api开头请求转发至php-fpm的Nginx配置优化方案

当然有更直接的配置方式——你完全可以跳过中间那层反向代理,直接在主Nginx配置里把/api开头的请求转发给php-fpm进程,省去额外的转发开销,逻辑也更简洁。

优化后的完整配置示例

server {
    listen       80; # 保留你原有的监听端口
    server_name  你的主服务器域名或IP; # 替换成实际的server_name
    root         x:xxxxx/; # 这里是你原来的root路径,注意末尾斜杠要和实际路径匹配

    # 处理所有/api开头的请求
    location /api/ {
        # 先尝试访问请求的静态文件,找不到就导向入口文件
        try_files $uri $uri/ /api/index.php?$args;
        index  index.php;
    }

    # 专门处理/api入口的php请求
    location ~ ^/api/index\.php$ {
        include fastcgi.conf;
        # 直接连接本地的php-fpm进程
        fastcgi_pass 127.0.0.1:9000;
        # 明确指定php入口文件的绝对路径,避免路径解析错误
        fastcgi_param SCRIPT_FILENAME $document_root/api/index.php;
    }
}

更简洁的写法(用命名location)

如果不需要单独处理/api下的静态文件,也可以用命名location简化配置:

server {
    listen       80;
    server_name  你的主服务器域名或IP;
    root         x:xxxxx/;

    location /api/ {
        # 所有/api请求直接转发到命名location处理
        try_files $uri $uri/ @api-fcgi;
    }

    location @api-fcgi {
        include fastcgi.conf;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root/api/index.php;
    }
}

关键说明

  1. 省去中间代理:直接在主服务器配置中完成fastcgi转发,不需要再维护127.0.0.100的中转服务器配置
  2. 路径正确性:$document_root会自动拼接你配置的root路径,确保$document_root/api/index.php和实际的入口文件路径一致
  3. 性能优化:减少了一次HTTP反向代理的开销,请求处理链路更短

内容的提问来源于stack exchange,提问作者taolu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 11:17:36