Apache-2.2
如何使用多個萬用字元 apache vhosts 配置
我知道它可以在 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 個替代方案:
- 使用mod_vhost_alias。這也可能不是一個選擇,但仍然是。
- 為生產/開發/發布使用單獨的 IP 地址。如果您在內部網路上/在 NAT 後面,這應該相對容易。
- 在 Apache 中為每個 VHost 使用單獨的埠,並將 HAProxy 實例放在重定向到正確埠的同一伺服器上。在 HAProxy 中,您可以更好地對 Host 標頭進行正則表達式匹配。