nginx configure / folder从与/]不同的路径运行>

问题描述 投票:0回答:1

我在从主网站以外的其他路径运行/文件夹时遇到问题。

该部分的我的nginx.conf看起来像这样:

        location ~ \.php$ {
            try_files               $uri = 404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_param       SCRIPT_FILENAME $request_filename;
            fastcgi_pass            unix:/var/run/php/php7.2-fpm.sock;
            fastcgi_index           index.php;
           include                 fastcgi_params;
            include                 fastcgi.conf;
    }


location ~ /folder {
        alias /srv/http/folder;
    try_files $uri $uri/ @folder;

    location ~ \.php$ {
                fastcgi_param SCRIPT_FILENAME $request_filename;
                fastcgi_pass   unix:/var/run/php/php7.2-fpm.sock;
                include        fastcgi.conf;
        }
}

location @folder {
    rewrite /folder/(.*)$ /folder/index.php?/$1 last;
}

在error.log中,我可以看到以下内容:

2020/06/03 09:05:26 [error] 25966#25966: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 172.21.2.46, server: example.com, request: "GET /folder/xxx_v6.15.11/Resources/images/redcaplogo.gif HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.2-fpm.sock:", host: "example.com"

任何建议如何解决此问题?

我在从主网站以外的其他路径运行/文件夹时遇到问题。我在该部分的nginx.conf如下所示:location〜\ .php $ {try_files $ uri ...

nginx subdirectory
1个回答
0
投票

Regex位置从头到尾进行匹配,第一个找到的匹配项由nginx处理。当您收到对/folder/script.php的请求时,第一个位置块将对其进行处理。尝试交换这两个位置。另外,为什么第二个位置块中不包含fastcgi_params

© www.soinside.com 2019 - 2024. All rights reserved.