具有主機頭功能的路由器/網關

具有主機頭功能的路由器/網關

誰能指導我如何為我的家庭辦公環境尋找一個路由器/網關/防火牆,以便能夠在連接埠 80 上運行多個(例如具有一個公共 IP 的 Web 伺服器)。我知道可以在伺服器電腦上使用 Apache 或 IIS 來完成。 Cisco 或 Netgear 路由器?

例如:

主機1.example.com:80 -> 192.168.0.101

主機2.example.com:80 -> 192.168.0.102

答案1

Openwrt 有很好的 apache/squid 支援。我什至使用 apache 進行反向代理。您唯一需要的是一個相容 openwrt 的路由器。

第二件事,你需要在這個特殊的代理程式工作方法中設定apache(我建議使用apache)。這並不像看起來那麼難。如果您願意,我很高興在這篇文章中複製貼上一些配置範例。

這種代理的 CPU 需求並沒有太大問題 - 大多數路由器都沒有很強的 CPU - 因為這樣的硬體/軟體配置所做的,實際上並不是只是轉發資料包。沒有像fe php-interpretation或jvm這樣的cpu密集型的東西,apache可以用他的“worker”mpm以線程模式運行,速度非常快。

答案2

路由器通常不運行伺服器。如果有足夠的內存,基於 OpenWRT 和 DD-Wrt 的路由器可以提供此功能。這是因為它們運行的是 Linux 核心。 Web 伺服器功能是透過執行 Web 伺服器或代理程式(例如 Apache 或 Squid)來實現的。

如果您有多個小型網站需要伺服器,您可以使用 Rasberry Pi 或類似裝置來運行您的網站。如果您需要更多容量,運行 Linux 的小型伺服器可以同時提供防火牆和 Web 伺服器功能。我從一個回收的桌面系統開始,第二個網卡運行 Linux 作為 Web 伺服器和防火牆。

我在網頁伺服器上進行這種分離。主要的 Web 伺服器會根據主機標頭處理傳輸內容。 Apache Web 伺服器將此功能稱為 VirtualHosts。可以將主機的部分或全部流量代理到第二台伺服器。

多域 HTTPS 更加困難,因為憑證與主機名稱相關聯。如果網域相關,則可以使用多域或通配符憑證。有些伺服器可以在提供憑證之前處理主機名稱協商,儘管我從未成功實現過這一點。

您需要讓路由器將 HTTP 請求轉送到 Web 伺服器。大多數路由器透過連接埠和/或 DMZ 位址提供此功能。

相關內容