我需要在 Linux 上安装一个 Apache 2.2 的服务器,并且需要做两个通过 URI 区分的 VirtualHosts。
但只有一个域名和一个 IP 地址。而且我不能使用别名。
我尝试过类似的事情,但没有效果:
<VirtualHost *:80>
DocumentRoot /var/www/app1
ServerName localhost/app1
ServerAlias www.localhost/app1
<Directory /var/www/app1>
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/app2
ServerName localhost/app2
ServerAlias www.localhost/app2
<Directory /var/www/app2>
Allow from all
</Directory>
</VirtualHost>
我需要这个,因为我需要为每个虚拟主机配置一个错误日志。
我想,我也许可以对 ServerPath 做些什么,但我不知道该怎么做。
编辑:非常感谢你的第一个回答,它起作用了:D
答案1
你可以做的是建立一个反向代理到仅在环回上监听的不同虚拟主机。
您将在 www.localhost 虚拟主机中获得:
<VirtualHost *:80>
DocumentRoot /var/www/
ServerName localhost
ServerAlias www.localhost
ProxyPassReverse /app1/ http://webapp1.local/
ProxyPassReverse /app2/ http://webapp2.local/
</Virtualhost>
并为应用程序创建两个虚拟主机:
<VirtualHost 127.0.0.1:80>
DocumentRoot /var/www/app1
ServerName webapp1.local
<Directory /var/www/app1>
Allow from all
</Directory>
</Virtualhost>
<VirtualHost 127.0.0.1:80>
DocumentRoot /var/www/app2
ServerName webapp2.local
<Directory /var/www/app2>
Allow from all
</Directory>
</Virtualhost>
确保将 webapp1.local 和 webapp2.local 添加到文件中/etc/hosts
。另一种可能性是apache-服务器-多个目录-不同的错误日志