我的公司使用一个可以通过以下方式访问的 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