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

请求优化单服务器双Web应用的Nginx配置

Nginx配置优化方案

你的配置存在两个核心问题,导致/api路径无法正确映射到/app/api目录,下面是修正后的配置及细节说明:

问题分析

  1. location /api 中 root 指令误用:
    root 会将请求的URI完整追加到指定路径后,比如访问/api/index.php时,Nginx会尝试读取/app/api/api/index.php,这显然和你的预期不符。
  2. /api路径下的PHP文件无法正确解析:
    全局的PHP匹配规则无法正确处理/api路径下的文件,需要单独适配路径映射。

优化后的配置

server {
    listen 80 default_server;
 
    index index.php index.html index.htm;

    # 默认根目录指向web应用
    root /app/web;

    # 处理/api路径,使用alias替代root,正确映射到/app/api
    location /api {
        alias /app/api;
        # 继承全局index规则,也可以单独指定
        index index.php index.html index.htm;

        # 处理/api路径下的PHP文件
        location ~ [^/]\.php(/|$) {
            # 生产环境不建议开启目录遍历,存在安全风险
            # autoindex on;
            # autoindex_exact_size on;
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass php:9000;
            fastcgi_index index.php;
            include fastcgi_params;
            # 因alias修改了路径映射,使用$request_filename确保脚本路径正确
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_param PATH_INFO $fastcgi_path_info;
        }
    }

    # 处理web应用下的PHP文件
    location ~ [^/]\.php(/|$) {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

    error_log  stderr warn;
    access_log  /dev/stdout main;

    client_max_body_size 10M;
}

关键修改说明

  • 替换root为alias:alias会将/api路径直接替换为/app/api,访问/api/xxx时对应/app/api/xxx,完全匹配你的映射需求。
  • 嵌套PHP规则到/api location:确保/api下的PHP文件能被正确解析,同时使用$request_filename替代$document_root$fastcgi_script_name,避免alias导致的路径拼接错误。
  • 移除生产环境风险配置:关闭autoindex目录遍历功能,减少不必要的安全暴露。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:20:43