Apache服务器上有两个带URI的应用程序

时间:2014-04-10 13:53:35

标签: apache uri virtualhost domain-name apache2.2

我需要在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>

2 个答案:

答案 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/

到达