谁能指导我寻找什么来为我的家庭办公环境获得路由器/网关/防火墙,以便能够在端口 80 上运行多个例如 Web 服务器,并具有一个公共 ip。我知道可以在服务器计算机上使用 Apache 或 IIS 来完成。思科或 Netgear 路由器?
例如:
host1.example.com:80 -> 192.168.0.101
host2.example.com:80 -> 192.168.0.102
谁能指导我寻找什么来为我的家庭办公环境获得路由器/网关/防火墙,以便能够在端口 80 上运行多个例如 Web 服务器,并具有一个公共 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(我建议使用 apache)。它并不像看起来那么难。如果你愿意,我很高兴在这篇文章中复制粘贴一些配置示例。
这种代理的 CPU 需求没有太大问题——大多数路由器的 CPU 性能都不是很强——因为这样的硬件/软件配置实际上并不像只转发数据包那样。没有 fe php-interpretation 或 jvm 这样的 cpu 密集型东西,apache 可以用他的“worker”mpm 以线程模式运行,速度非常快。
路由器通常不运行服务器。如果基于 OpenWRT 和 DD-Wrt 的路由器有足够的内存,它们可以提供此功能。这是因为它们运行的是 Linux 内核。Web 服务器功能是通过运行 Web 服务器或代理(如 Apache 或 Squid)来完成的。
如果您有几个小站点要服务器,您可以使用 Rasberry Pi 或类似设备来运行您的网站。如果您需要更多容量,运行 Linux 的小型服务器可以同时提供防火墙和 Web 服务器功能。我从一个回收的桌面系统开始,使用第二个网卡运行 Linux 作为 Web 服务器和防火墙。
我在 Web 服务器上进行了这种分离。主要的 Web 服务器根据 Host 标头处理交付内容。Apache Web 服务器将此功能称为 VirtualHosts。可以将主机的部分或全部流量代理到第二台服务器。
多域 HTTPS 更加困难,因为证书与主机名相关联。如果域是相关的,则多域或通配符证书将起作用。一些服务器可以在提供证书之前处理主机名的协商,尽管我从未成功实现过这一点。
您将希望您的路由器将 HTTP 请求转发到您的 Web 服务器。大多数路由器通过端口和/或作为 DMZ 地址提供此功能。