gpt4 book ai didi

Nginx、try_files 代理和具有 404 回退的命名位置

转载 作者:行者123 更新时间:2023-12-04 20:09:31 27 4
gpt4 key购买 nike

我有一个奇怪的问题,它只影响我正在处理的一个本地应用程序 - 使用这种方法的其他应用程序似乎工作正常(Ghost)。这是来自我的 Nginx 服务器配置:

location @node_proxy {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Host $host;
proxy_redirect off;
proxy_pass http://127.0.0.1:5000;
}

location / {
try_files @node_proxy =404;
}

正如我所说,我的 Ghost 运行方式与此相同,并且运行良好。然而,对于这个配置,它导致每个请求都是 404 - 它似乎永远不会命中代理。我检查了日志,这证实了我的怀疑,访问或错误日志中没有条目。

在这个实例中,我代理的应用程序只是一个简单的基于 Express 的节点应用程序,所以没有什么复杂的。来访 http://127.0.0.1:5000我看到了预期的结果。

如果我将配置更改为:
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Host $host;
proxy_redirect off;
proxy_pass http://127.0.0.1:5000;
}

它按预期工作,但是我想利用命名位置以避免重复代理声明。

我错过了一些明显的东西吗?

最佳答案

尝试这种黑客:

location @root {
...
}

location / {
error_page 418 = @root; return 418; # redirect to @root
}

似乎不可能从常规位置跳转到命名位置。你也可以试试 try_files @root @root ,但是 Igor Sysoev(nginx 的作者)说 error_page更好,因为它使用更少的资源。

关于Nginx、try_files 代理和具有 404 回退的命名位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20288537/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com