Apache-2.2
使用 mod_vhost_alias 時如何添加特定的 vhost 配置?
我使用 mod_vhost_alias 因為我很容易添加新的虛擬主機(我只需要創建一個目錄)。
/etc/apache2/mods-available/vhost_alias.conf
UseCanonicalName Off VirtualDocumentRoot /var/www/%0/htdocs
/etc/apache2/sites-available/default
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost>
但是我需要配置一個自定義虛擬主機來使用
mod_proxy
,所以我創建了:
/etc/apache2/sites-available/mysite
<VirtualHost *> ServerName mysite.example.com ProxyPreserveHost On ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://192.168.1.12:7235/ ProxyPassReverse / http://192.168.1.12:7235/ <Location /> Order allow,deny Allow from all </Location> </VirtualHost>
雖然它對於 vhost_alias 配置工作正常,但當我嘗試請求 my.example.com 時,我得到了 404(因為主機名目錄不存在),並且我的站點已正確啟用。
有任何想法嗎?
將您的
VirtualDocumentRoot /var/www/%0/htdocs
指令移出/etc/apache2/mods-available/vhost_alias.conf
,並移入<VirtualHost>
塊中/etc/apache2/sites-available/default
;你不希望它適用於一切。另外 - 更改您的虛擬主機定義
/etc/apache2/sites-available/mysite
:<VirtualHost *>
到:
<VirtualHost *:80>
..並確保您在
NameVirtualHost *:80
某處有一個指令(ports.conf
?),以便您的第二個虛擬主機實際收到請求。