Apache-2.2

如何使用多個萬用字元 apache vhosts 配置

  • April 22, 2016

我知道它可以在 apache ServerAlias 上使用萬用字元。我正在嘗試配置 3 組,但配置依賴於一個虛擬主機,而不是每個單獨的虛擬主機。

開發環境

ServerName dev.somedomain.com
ServerAlias dev.*.somedomain.com
docroot /var/www/dev.somedomain.com

發布環境

ServerName release.somedomain.com
ServerAlias release.*.somedomain.com
docroot /var/www/release.somedomain.com

生產環境

ServerName somedomain.com
ServerAlias www.somedomain.com *.somedomain.com www.*.somedomain.com
docroot /var/www/somedomain.com

但是當我瀏覽到 dev.test.somedomain.com 時,我得到了 somedomain.com(不是 dev.somedomain.com)的內容。我在這裡想念什麼?

正如我在評論中所說,您可以通過更改 Apache 配置中 VirtualHosts 的順序來解決此問題。由於這是不可能的,我將為您指出 3 個替代方案:

  1. 使用mod_vhost_alias。這也可能不是一個選擇,但仍然是。
  2. 為生產/開發/發布使用單獨的 IP 地址。如果您在內部網路上/在 NAT 後面,這應該相對容易。
  3. 在 Apache 中為每個 VHost 使用單獨的埠,並將 HAProxy 實例放在重定向到正確埠的同一伺服器上。在 HAProxy 中,您可以更好地對 Host 標頭進行正則表達式匹配。

引用自:https://serverfault.com/questions/771996