我正在尝试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"
它是一个命名位置,那么为什么它试图将它作为文件路径读取呢?
命名位置需要最后出现在
try_files
. 你不应该有任何过去的东西(事实上,无论如何它永远都不会到达)。