我可以通过1个IP地址在LAN上将两个单独的Web服务器托管到外部世界吗?

时间:2009-01-16 06:21:53

标签: http iis-7 http-headers

我是一名拥有家庭网络开发操作的网络程序员。我在FIOS连接上有多个Web服务器。我有自己的域名通过dyndns.org的自定义域名服务指向我的路由器。

我的ISP为我提供了一个静态IP地址,目前允许我配置我的路由器以通过端口80从一个服务器引导出站Web流量,并通过端口8080引导另一个服务器。这很糟糕,因为现在许多公司阻止端口8080导致我的一些公司客户无法访问我的第二个Web服务器。

有没有办法让我使用两个单独的主机名将常规的旧端口80网络流量定向到网络内部的两个单独的Web服务器?

例如。我希望http://webserver1.mydomain.com能够点击我网络上的一个网络服务器,http://webserver2.mydomain.com打到另一个网络服务器,并在端口80上提供两组流量。

这甚至可能吗?如果没有,我可以通过编程方式将来自一个Web服务器的流量透明地路由到另一个Web服务器吗?

对于记录,我运行MS Windows Server 2008 IIS 7.0堆栈,D-link DIR-655路由器,并使用DynDNS满足我的域名需求。

6 个答案:

答案 0 :(得分:7)

您要寻找的解决方案的名称称为反向代理 apachesquidMircosoft ISA Server中有实现。

如果你喜欢冒险,你可以随时自己动手吗?或修改this之类的内容以满足您的需求。

我有客户使用鱿鱼反向代理,它的体积很大,而且效果很好!

它确实会搞砸网络服务器上的网络日志,但流量似乎都来自正在进行重定向/重写的内部代理主机。

答案 1 :(得分:2)

是的,使用IIS7的Rewrite模块执行此操作

答案 2 :(得分:1)

某种应用层路由可能是您的选择。本文指出如何在ISA服务器上执行此操作(使用Web规则)

http://www.codinghorror.com/blog/archives/000984.html

答案 3 :(得分:1)

您可以使用2个虚拟主机设置apache,然后在每个块中放置本地网络上相应站点的代理:

在vhost 1中:

ProxyRequests Off

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPass / http://192.168.0.49/
ProxyPassReverse / http://192.168.0.49/

在vhost 2中:

ProxyRequests Off

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPass / http://192.168.0.50/
ProxyPassReverse / http://192.168.0.50/

你需要mod_proxy,我甚至不确定这会起作用

答案 4 :(得分:0)

为什么不保持简单,只需在您的帐户中订购或申请第二个IP地址?这似乎是比复杂的硬件和/或软件设置更容易的解决方案。只是不要告诉他们你是托管网站,因为互联网服务提供商通常不喜欢人们在住宅帐户上这样做(我实际上很惊讶他们不会阻止80端口)。

答案 5 :(得分:0)

这是一个老帖子,但我有同样的问题。 Verizon只给你1个ip。如果你想要更多,你必须以每月约100美元的价格使用他们的商业计划。 我有一个redhat和windows 2008r2家庭服务器运行。我有2个godaddy域名都指向我的verizon wan ip地址。我的Windows服务器使用端口80用于mysite1.com,我的linux端口8080用于mysite2.com。我不使用DYN,因为我想使用自己的域名。我做了一个IIS站点主机头来将mysite2.com导向我的linux盒子。两个域都在线工作,但在mysite2.com中键入浏览器URL窗口中的mysite2.com:8080。我不认为有办法隐藏8080.至少不正确。我在政府机构工作,他们阻止使用端口8080的站点。他们还阻止使用屏蔽/帧转发的域。因此屏蔽8080将导致您的网站被阻止。最好的解决方案是让Verizon以合理的价格向我们这样的人提供2个IP地址!