我需要在Linux上安装带有Apache 2.2的服务器,我需要做两个按URI区分的VirtualHost。
但只有一个域名和一个IP地址。我无法使用Alias。
我尝试过类似的东西,但那不起作用:
<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>
答案 0 :(得分:0)
感谢第一个答案,它正在运作:https://serverfault.com/questions/588841/two-apps-on-apache-server-with-uri
如果有一天链接不起作用,我把答案放在这里:
您可以做的是为仅在环回时监听的不同虚拟主机设置反向代理。
你会进入你的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文件中。
答案 1 :(得分:-2)
由于您只有一个域名且只有一个可用的IP地址,因此apache服务器无法区分哪个主机。因此,在这里定义VirtualHosts没有任何意义。
但是,您当然可以在DocumentRoot中的不同文件夹中放置两个应用程序:
ServerName whatever-your-domain.is
DocumentRoot /var/www
<Directory /var/www/app1>
Order allow,deny
Allow from all
</Directory>
<Directory /var/www/app2>
Order allow,deny
Allow from all
</Directory>
然后,您可以按照自己的路径调用这些应用:
请勿忘记处理&#34;主文件夹&#34;单个主持人:/var/www
可以通过http://whatever-your-domain.is/