You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Michael Ni <mi...@gmail.com> on 2010/04/09 07:43:10 UTC

Can I have two virtual hosts with same servername?

I have a java project that resides in tomcat.  Recently we needed to add
Wordpress (php project).

We decided to go with Apache Server in front with virtual hosts with
mod_proxy_ajp.

So far I have gotten different server names to work

http://www.foobar.com
http://blog.foobar.com

<VirtualHost *:80>
   ServerName www.foobar.com

   <Proxy *>
     AddDefaultCharset Off
     Order deny,allow
     Allow from all
   </Proxy>

   ProxyPass / ajp://localhost:8009/
   ProxyPassReverse / ajp://localhost:8009/
</VirtualHost>

<VirtualHost *:80>
    ServerName blog.foobar.com

   ErrorLog "C:/Program Files/Apache Software
Foundation/Apache2.2/logs/error.log"
   DocumentRoot "C:/Program Files/Apache Software
Foundation/Apache2.2/htdocs"
</VirtualHost>



HOWEVER,
we want to do the following instead
http://www.foobar.com
http://www.foobar.com/blog

why does the following NOT work?

<VirtualHost *:80>
   ServerName www.foobar.com

   <Proxy *>
     AddDefaultCharset Off
     Order deny,allow
     Allow from all
   </Proxy>

   ProxyPass / ajp://localhost:8009/
   ProxyPassReverse / ajp://localhost:8009/
</VirtualHost>

<VirtualHost *:80>
    ServerName www.foobar.com
    ServerPath /blog

   ErrorLog "C:/Program Files/Apache Software
Foundation/Apache2.2/logs/error.log"
   DocumentRoot "C:/Program Files/Apache Software
Foundation/Apache2.2/htdocs"
</VirtualHost>

Re: Can I have two virtual hosts with same servername?

Posted by Tom Evans <te...@googlemail.com>.
On Fri, Apr 9, 2010 at 6:43 AM, Michael Ni <mi...@gmail.com> wrote:
> I have a java project that resides in tomcat.  Recently we needed to add
> Wordpress (php project).
>
> We decided to go with Apache Server in front with virtual hosts with
> mod_proxy_ajp.
>
> So far I have gotten different server names to work
>
> http://www.foobar.com
> http://blog.foobar.com
>
> <VirtualHost *:80>
>    ServerName www.foobar.com
>
>    <Proxy *>
>      AddDefaultCharset Off
>      Order deny,allow
>      Allow from all
>    </Proxy>
>
>    ProxyPass / ajp://localhost:8009/
>    ProxyPassReverse / ajp://localhost:8009/
> </VirtualHost>
>
> <VirtualHost *:80>
>     ServerName blog.foobar.com
>
>    ErrorLog "C:/Program Files/Apache Software
> Foundation/Apache2.2/logs/error.log"
>    DocumentRoot "C:/Program Files/Apache Software
> Foundation/Apache2.2/htdocs"
> </VirtualHost>
>
>
>
> HOWEVER,
> we want to do the following instead
> http://www.foobar.com
> http://www.foobar.com/blog
>
> why does the following NOT work?
>
> <VirtualHost *:80>
>    ServerName www.foobar.com
>
>    <Proxy *>
>      AddDefaultCharset Off
>      Order deny,allow
>      Allow from all
>    </Proxy>
>
>    ProxyPass / ajp://localhost:8009/
>    ProxyPassReverse / ajp://localhost:8009/
> </VirtualHost>
>
> <VirtualHost *:80>
>     ServerName www.foobar.com
>     ServerPath /blog
>
>    ErrorLog "C:/Program Files/Apache Software
> Foundation/Apache2.2/logs/error.log"
>    DocumentRoot "C:/Program Files/Apache Software
> Foundation/Apache2.2/htdocs"
> </VirtualHost>
>
>

This shouldn't be on dev, it should be on users.

Read the manual section on virtual hosts for an explanation of why
what you tried does not work. However, it is trivial to do what you
wanted:


<VirtualHost *:80>
   ServerName www.foobar.com

   <Proxy *>
     AddDefaultCharset Off
     Order deny,allow
     Allow from all
   </Proxy>

   ErrorLog "C:/Program Files/Apache Software
Foundation/Apache2.2/logs/error.log"
   DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"

   ProxyPass /blog !
   ProxyPass / ajp://localhost:8009/
   ProxyPassReverse / ajp://localhost:8009/

</VirtualHost>