我使用mod_vhost_alias,因为我很容易添加新的虚拟主机(我只需要创build一个目录)。
/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>
不过,我需要configuration一个自定义虚拟主机使用mod_proxy
,所以我创build了:
/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_aliasconfiguration正常工作,当我尝试请求my.example.com时,我得到了404(因为主机名目录不存在),以及我的网站已正确启用。
有任何想法吗?
将VirtualDocumentRoot /var/www/%0/htdocs
指令移出/etc/apache2/mods-available/vhost_alias.conf
,并移入/etc/apache2/sites-available/default
的<VirtualHost>
你不希望它适用于一切。
另外 – 在/etc/apache2/sites-available/mysite
更改你的vhost定义:
<VirtualHost *>
至:
<VirtualHost *:80>
..并确保你有一个NameVirtualHost *:80
指令某处( ports.conf
?),这样你的第二个虚拟主机实际上得到请求。