Apache-2.4
如何強制 Apache 跳過綁定到失敗的介面?
我在筆記型電腦上的 VirtualBox 中執行 Apache。我還使用了基於 IP 的 VirtualHost-s。我希望能夠在我四處走動時訪問 某些預先知道的網路。然而,IP 並沒有“移動”,因為我在網路路由器上設置了 DHCP 以將靜態 IP 分配給 MAC,因此每個位置的 IP 基本上都是靜態的。
我想在我的 Apache 配置中擁有所有這些 IP。
但是,當其中一個介面不可用時,Listen 指令會失敗。
有什麼辦法可以讓 Listen 指令以OR方式而不是AND方式工作?
謝謝你。
如果你想讓 Apache 監聽分配給機器的所有 IP 地址,你可以簡單地指定一個沒有任何 IP 地址的綁定指令,例如:
Listen 80
如果您只需要綁定到已分配地址的子集,則可能的解決方案是確保兩個 IP 地址始終分配給機器,即使它們沒有分配給物理介面。
從問題和評論中,我了解到您目前正在使用 BSD,但如果可以解決問題,則可以向其他平台開放。以下是我在 Ubuntu 上所做的非常相似的事情。我希望這種變化也適用於 BSD,但我沒有足夠的 BSD 知識來為 BSD 提供詳細的解決方案。
Linux 有一個
dummy
帶有虛擬介面的網路驅動程序dummy0
,您可以為其分配 IP 地址。這些 IP 地址將被視為本地 IP 地址,與分配給物理介面的 IP 地址相同,因此 Apache 可以綁定到它們。在
/etc/network/interfaces
我添加了post-up
這樣的一行:post-up /usr/local/sbin/eth0-post-up
然後
/usr/local/sbin/eth0-post-up
我載入了dummy
驅動程序並配置了我需要的所有 IP 地址:#!/bin/bash modprobe dummy ip address add dev dummy0 10.58.249.248/32 ip address add dev dummy0 10.138.65.134/32