【发布时间】:2013-11-29 15:02:38
【问题描述】:
我有一个奇怪的问题,它只影响我正在开发的一个本地应用程序 - 采用这种方法的其他应用程序似乎工作正常(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;
}
它按预期工作,但是我想使用命名位置以避免重复代理声明。
我是否遗漏了一些明显的东西?
【问题讨论】: