具有主机头function的路由器/网关

任何人都可以指导我寻找什么来获得我的家庭办公环境的路由器/网关/防火墙能够运行多个例如Web服务器端口80,与一个公共IP。 我知道这可以在服务器计算机上使用Apache或IIS来完成。 思科或Netgear路由器?

例如:

host1.example.com:80 – > 192.168.0.101

host2.example.com:80 – > 192.168.0.102

Openwrt有很好的apache / squid支持。 我甚至使用Apache的反向代理。 只有你需要的是一个openwrt兼容的路由器。

第二件事,你需要在这个特殊的代理工作方法中设置apache(我为此build议apache)。 这似乎并不难。 如果你愿意,我很高兴在这篇文章中复制粘贴一些configuration示例。

对于这种代理的CPU需求没有太多的问题 – 大多数路由器的CPU不是很强 – 因为这样的hw / swconfiguration是干什么的,实际上并不仅仅只是数据包转发。 没有这样的CPU密集型的东西,比如fe php-interpret或者jvm,而apache可以用他的“worker”mpm以线程模式运行,这非常快。

路由器通常不运行服务器。 如果基于OpenWRT和DD-Wrt的路由器具有足够的内存,则可以提供此function。 这是因为他们正在运行一个Linux内核。 Web服务器function通过运行Web服务器或代理(如Apache或Squid)来完成。

如果你有几个小型站点服务器,你可能可以使用Rasberry Pi或类似的设备来运行你的网站。 如果您需要更多容量,运行Linux的小型服务器可以提供防火墙和Web服务器function。 我从一个循环的桌面系统开始,第二个网卡是运行Linux作为Web服务器和防火墙。

我在Web服务器上做这个分离。 主要的Web服务器处理基于Host头部的交付内容。 Apache Web服务器调用VirtualHosts的这个function。 可以将一些或全部主机的stream量代理到第二台服务器。

由于证书与主机名关联,多域HTTPS更为困难。 如果域相关,则多域或通配符证书将起作用。 一些服务器可以在提供证书之前处理主机名的协商,尽pipe我从来没有成功实现过这个。

您将希望让您的路由器转发HTTP请求到您的Web服务器。 大多数路由器通过端口和/或DMZ地址提供此function。