NGINX 反向代理-隐藏来自原始服务器的代理 URL?

NGINX 反向代理-隐藏来自原始服务器的代理 URL?

我的公司使用一个可以通过以下方式访问的 Web 应用程序:http://10.10.10.20/WebAPP在 Windows Server 2019 上的 IIS 上运行。

现在,所述 WebAPP 需要通过互联网访问,因此需要 SSL - 我认为没问题,我将使用 NGINX 作为反向代理,就像我们对许多其他网站所做的那样,然后就结束了。

但随后我发现,当请求的 URI 不是其 IP 或 Windows NetBIOS 名称时,WebAPP 并不喜欢它。

因此,当尝试去https://app.company.se/WebAPP我收到 500 内部 HTTP 错误,查看 WebAPP 日志发现该请求来自它不喜欢的 app.company.se/WebAPP。

我的NGINX配置如下:

server {

  server_name webapp.company.com;

  location / {
        proxy_pass http://10.10.10.20;
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
  }

}

我也尝试过添加:proxy_set_header X-Forwarded-Host "http://10.10.10.20/"来欺骗网络应用程序,但是没有成功。

因此,我认为我只需要配置 NGINX,以便根本不通知 WebAPP,NGINX 反向代理后面还有其他人正在请求数据,并且就 WebAPP 而言 - 反向代理是唯一访问 WebAPP 的代理。

这可能吗?

答案1

该指令明确指示 nginx在向 10.10.10.20 发出请求时proxy_set_header Host $http_host;使用webapp.company.com作为 HTTP标头。Host:

只需省略该指令,或明确将其设置为默认值proxy_set_header Host $proxy_host;,nginx 将使用Host: 10.10.10.20

相关内容