将不同的路径映射到不同的网站

将不同的路径映射到不同的网站

在 IIS 8.5 上运行时,我有 4 个不同的站点运行 asp.net 应用程序,假设 a:80、b:7777、c:8888 和 d:9999(全部在不同的端口上运行)

有没有办法让 domain.com 指向默认网站 a,而其他 3 个应用程序 -> domain.com/a(指向 a:7777)、domain.com/b(指向 b:8888)和 domain.com/c(指向 c:9999),并且所有 4 个都有单独的应用程序池?

谢谢

答案1

通常,你的要求是通过使用反向代理在网站前面。一些流行的专用选项包括HAProxyNGINX

看来 IIS 本身也可以通过 URL 重写模块实现这一点。下面是博客文章更多信息:

有时您需要通过服务器进行反向代理。最常见的例子是,您有一个未暴露给互联网的内部 Web 服务器,并且您有一个可访问互联网的公共 Web 服务器。如果您想从内部 Web 服务器提供流量,您可以通过创建隧道(又称反向代理)通过公共 Web 服务器来实现。

本质上,您可以使用友好的 URL 来访问内部 Web 服务器,甚至隐藏自定义端口。

答案2

最简单的方法是将每个 asp.net 网站添加为同一网站上的“应用程序”。运行 IIS 管理器 (inetmgr),右键单击网站并选择“添加应用程序”。系统将提示您填写所有标准信息,就像填写网站一样(应用程序池、路径、安全上下文等)。重要的部分是“别名” - 您在此处输入的任何内容都将成为“domain.com/b”中的“b”。这样做的唯一问题是,您需要确保您的网站已编码为假定当前路径相对文件引用。因此,当 HTML 引用您的 JS、CSS 和图像时,它们都是 href="images/logo.png",而不是根路径相对,即 href="/images/logo.png" - 这是因为您没有在根路径中托管网站。

相关内容