Nginx: 当 proxy_set_header HOST 为硬编码 IP 时出现 404 错误

我们当前的情况是,上游应用程序只允许客户端 IP 而不是 nginx 的 IP

客户端--> nginx--> [IP过滤]上游

我正在尝试强制使用以客户端 IP 为硬编码的 HOST 标头在 nginx 配置中 [因为客户端始终具有单个 IP,不打算添加新客户端]

我正在尝试添加 proxy_set_header Host "client_ip_address"; 这样上游就会回复 404 找不到。但是没有这个,我会得到预期的 401-未经授权。

location /foo/
 {
  proxy_set_header Host "196.32.44.111";
  proxy_pass https://upstream.com:443;
 }

我尝试过 proxy_set_header Host $http_host,$host,$proxy_host 等,都没有成功。

根据此文献https://www.digitalocean.com/community/tutorials/how-to-use-the-openresty-web-framework-for-nginx-on-ubuntu-16-04,理论上不应该出现问题。

我仍然很惊讶为什么是 404 错误,其他任何错误都可以。但是 404 呢?

谢谢

点赞