Nginx 反向代理到 IIS 网络服务器

问题描述

我们目前正在尝试实现一种访问托管在 IIS 服务器上的应用程序 URL 的新方法

旧情况: 我们有几个应用程序使用以下 URL(唯一的区别是子域):

App1 -> https://app1.company.com
App2 -> https://app2.company.com
App3 -> https://app3.company.com

新情况: 我们希望所有应用程序都只有一个 URL(唯一的区别是子目录):

https://applications.company.com/app1
https://applications.company.com/app2
https://applications.company.com/app3

为了完成这项工作,我们想使用 Nginx 反向代理。

https://applications.company.com/app1 -> Nginx Reverse Proxy -> https://app1.company.com
https://applications.company.com/app2 -> Nginx Reverse Proxy -> https://app2.company.com
https://applications.company.com/app3 -> Nginx Reverse Proxy -> https://app3.company.com

当有人访问 https://applications.company.com/app1 时,浏览器 URL 必须是 https://applications.company.com/app1 但它必须转到 https://app1.company.com 这个新的 URL 结构必须与旧的共存。

我们尝试使用多种设置,这些设置是通过官方 Nginx 文档找到的,例如:

proxy_pass https://app1.company.com/app1;                                               
proxy_redirect https://app1.company.com/app1 https://applications.company.com/app1;

但似乎两者都不起作用。

我们已经在 Windows 服务器上安装了本地 Nginx。当我们转到 https://applications.company.com:10443/app1 时,我们现在得到 404 not found。网址更改为 https://applications.company.com:10443/portal/Login.aspx?redirect=%2fapp1

错误日志:

[error] 56300#64888: *1 CreateFile() "C:\Temp\Nginx/html/portal/Login.aspx" Failed (3: 系统找不到指定的路径),客户端: 127.0.0.1,服务器:applications.company.com,请求:“GET /portal/Login.aspx?redirect=%2fapp1 HTTP/1.1”,主机:“applications.company.com:10443”

有没有人有任何想法,这甚至可能吗?就像我说的,我们已经尝试按照官方文档进行搜索并使用谷歌搜索,但大多数建议似乎都没有给出我们希望的结果。

亲切的问候,

瑞克。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)