我有一个关于网络内部主机头转发的问题。
我的设置如下: - 前面有一个 Linksys 路由器 - 路由器后面有 3-4 个具有不同设置的测试网络服务器 - 我在 Windows 环境中
我想要做的是让 af 子域/CNAME 通过路由器跟踪到不同的服务器。例如,我有“website1.domain.com”和“website2.domain.com”,我希望 website1 转发到我的测试网络服务器 1,而 website2 转发到我的测试网络服务器 2。
在我目前的设置中,我可以在路由器中执行此操作,但我只处理端口,因此结果是端口 80 上的所有流量都必须转到一个服务器。这是一个问题,因为我一次只能展示一个 Web 服务器。
我希望我可以在 Windows 服务器上安装一些软件,让所有流量都通过,这样就可以轻松设置新的转发。
有人有任何意见吗?
问候托马斯
答案1
有一个适用于 Windows 的第三方软件(IIS),除了其他功能外,它可以很好地完成这项工作:ISAPI 重写。
ISAPI Rewrite 是一个基于正则表达式的强大 URL 处理引擎。它的作用与 Apache 的 mod_Rewrite 非常相似,但专为 Microsoft 的 Internet Information Server (IIS) 设计。ISAPI Rewrite 是一个用纯 C/C++ 编写的 ISAPI 过滤器,因此速度极快。ISAPI_Rewrite 让您可以自由地超越标准 URL 方案并开发您自己的方案。
我在我们的服务器上将其用于不同的目的,效果非常好。搜索“代理”。以下是RewriteProxy 规则的文档。
编辑:
你可以使用这些规则
RewriteCond %{HTTP_HOST} ^mydomain.com$
RewriteProxy ^(.*) http://local-server-ip/appdir-for-domain/$1 [H,A,L]
RewriteCond %{HTTP_HOST} ^myotherdomain.com$
RewriteProxy ^(.*) http://local-server-ip/appdir-for-otherdomain/$1 [H,A,L]
或者像这样:
RewriteCond %{HTTP_HOST} ^mydomain.com$
RewriteProxy ^(.*) http://mydomain.com.intranet$1 [H,A,L]
RewriteCond %{HTTP_HOST} ^myotherdomain.com$
RewriteProxy ^(.*) http://myotherdomain.com.intranet$1 [H,A,L]
答案2
将 apache 放到那里,使用 mod_proxy 转发到您想要的任何位置。
答案3
如果您想继续使用 MS 产品,那么 ISA Server 可以做到这一点。这是一个昂贵的解决方案,尽管有时您可以在 ebay 上以合理的价格找到 ISA。避免使用 ISA 2000,因为它很糟糕,请使用 ISA 2004 或 ISA 2006。
或者,任何反向代理都可以做到这一点。一个便宜而可靠的解决方案是 SQUID,尽管对于我们这些 Windows 用户来说,配置似乎不必要地复杂。我用过 SQUID,效果很好。
JR