【问题标题】:Multiple projects for one domain nginx一个域nginx的多个项目
【发布时间】:2020-01-06 12:27:24
【问题描述】:

我需要在一个域下设置两个项目(react+symfony),这是我的 nginx 配置:

server {
    listen 80;
    server_name domain.ltd;
    rewrite_log on;
    root /var/www/frontend;

    access_log      /var/log/nginx/project_access.log;
    error_log       /var/log/nginx/project_error.log;

    location / {
        index /index.html;
    }

    location /api/ {
        alias  /var/www/backend;
        try_files $uri /index.php$is_args$args;

        location ~ \.php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_split_path_info ^(.+\.php)(/.*)$;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            fastcgi_param DOCUMENT_ROOT $realpath_root;
            internal;
        }
    }
}

root / 工作正常,所以静态 index.html 我没有任何问题。但是 /api 的 symfony 应用程序在 nginx error.log 中抛出错误(403 Forbidden):

32349 open() "/var/www/frontend/index.php"

由于某种原因别名被忽略,我做错了什么? 提前致谢

【问题讨论】:

    标签: symfony nginx nginx-location nginx-config


    【解决方案1】:

    locationalias 值都应以 / 结尾,或者都不以 / 结尾。 try_files 语句的最后一个参数是一个 URI,所以需要包含 /api/ 前缀。

    例如:

    location /api/ {
        alias  /var/www/backend/;
        try_files $uri /api/index.php$is_args$args;
    
        location ~ \.php$ {
            try_files $uri =404;      
            fastcgi_pass 127.0.0.1:9000;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_param DOCUMENT_ROOT $realpath_root;
            internal;
        }
    }
    

    另外,将try_files 语句添加到嵌套的location 块到avoid passing uncontrolled requests to PHPSCRIPT_FILENAME 的正确值是 $request_filename,它适用于 rootalias

    【讨论】:

    • 按照您的建议进行了更改,但错误仍然几乎相同,只是更改了路径:33293 open() "/var/www/frontend/api" failed (2: No such file or directory) 所以似乎 nginx 尝试访问前端目录,而不是在别名 backend 中指定
    猜你喜欢
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 2012-05-20
    相关资源
    最近更新 更多