场景如下: 服务器 A 托管“主”应用程序 (www.example.com) 服务器 B 正在托管支持应用程序 (b.example.com) 它们通过 192.* 地址在内部相互连接,并且都可以通过 DNS 在外部使用
服务器 A 有多个通过 UNC 共享映射的虚拟目录: www.example.com/virtual1 ->\192.168.1.1\virtual1(在服务器 B 上)
我希望能够运行位于服务器 B 上的应用程序(通过 IIS 提供服务)并使其看起来就像在服务器 A 上运行一样:
www.example.com/application -> b.example.com/app
我仍然希望能够直接访问服务器 B
b.example.com/app
有什么想法吗?
编辑:
事实证明,代理背后的应用程序拒绝让我动态更改它的“操作”形式(也不让我更改其他任何内容)。我能够显示来自服务器的数据;只是无法发帖:(
所以这两个答案都为我指明了正确的方向。我使用了代理:
http://code.google.com/p/iisproxy/
我在服务器 A 上创建了一个与我在服务器 B 上所需的目录相匹配的虚拟目录 - 并且它成功了! :-)
最佳答案
这在 IIS 中应该是可能的。我记得我必须这样做一次。
只需使用指向 \\ServerB\SharedAppDirOnB
的 UNC 路径创建一个虚拟目录,并(如有必要)使用服务器 B 所需的凭据“连接为...”。
如果“连接为...”出现问题,可能是服务器 B 的文件夹权限问题。请尝试以下操作:在主服务器上添加一个与该帐户具有相同名称和密码的新用户帐户在服务器 B 上。这听起来很愚蠢,但我记得它解决了我的问题。例如,您可以在两台服务器上添加一个新用户帐户:“IisCommon”,并在两台服务器上使用相同的密码。然后确保您授予对服务器 B 上的文件夹的所有必要的文件访问权限(以及共享权限!)。如果您可以访问共享,请首先尝试使用 Windows 资源管理器手动连接。
确保您将新的虚拟目录标记为应用程序并授予正确的执行权限。
另一种解决方案是某种反向代理。为此,我在 IIS 6.0 上使用了第三方产品:ISAPIrewrite对于 IIS。 “代理”模式允许您将向主服务器 (www.example.com/...) 发出的请求“转发”到其他服务器,但提供结果响应,就好像它们是由主“域”应用程序处理的一样。该功能称为“代理指令”。它接受正则表达式。
关于iis-6 - IIS 6 - 创建一个指向不同服务器上的 IIS 应用程序的虚拟目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/658916/