代理请求槽 nginx 不起作用,错误 404



>我有以下nginx配置

upstream backend {
server backendserver01.example.com;
}
server
{
listen 8097;
listen [::]:8097;
server_name  mynginxproxy.domain.local;
location /
{
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_pass http://backend;
}
}

我运行以下 curl 命令:

curl -v -g -H "Accept: application/json" -H "Content-type: application/json" -H "X-API-KEY: some-guid" --URL "http://mynginxproxy.domain.local:8097/path/api/v1/getData?exported=false&component[name]=somecomponent"

我收到了来自nginx的404。

直接针对 backendserver01.example.com 运行命令完全可以正常工作。 对此有什么想法吗?

那是因为你使用了不正确的配置:

server_name  _;

因为您正在卷曲mynginxproxy.domain.local这意味着您正在使用服务器名称指示,例如将主机标头传递给 Nginx,并且 Nginx 当前未配置为接受虚拟主机上mynginxproxy.domain.local请求。

将此行更改为:

server_name  mynginxproxy.domain.local;

从位置部分删除不必要的行proxy_ssl_server_name on;,因为您代理的是 http 而不是 https。

并确保mynginxproxy.domain.localFQDN 在 Nginx 主机上正确解析。

好的,我已经找到了解决方案。

设置

proxy_set_header Host backendserver01.example.com;
proxy_set_header X-Forwarded-For $remote_addr;

解决了我的问题。

最新更新