nginx 尝试使用命名位置作为真实文件路径?

nginx 尝试使用命名位置作为真实文件路径?

我正在尝试proxy_pass使用命名位置访问 Apache2 实例,但 Nginx 尝试在磁盘上找到命名位置?

Nginx配置:

root /var/www;

location / {
   try_files $uri @apache =404;
}


location @apache {
   proxy_intercept_errors on;
   proxy_set_header X-Real-IP  $remote_addr;
   proxy_set_header X-Forwarded-For $remote_addr;
   proxy_set_header Host $host;
   proxy_pass http://127.0.0.1:8080;
}

尝试访问不存在的文件应该使用 proxy_pass,但是却失败并出现 404 错误,并且日志显示:

trying to use file: "@apache" "/var/www@apache"

它是一个命名位置,那么为什么它尝试将其读取为文件路径?

答案1

命名的位置需要出现在 的最后try_files。您不应该在它之后有任何东西(事实上,无论如何它都永远不会被到达)。

try_files $uri @apache;

相关内容