You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Ask Bjoern Hansen <as...@develooper.com> on 2001/04/14 07:46:07 UTC

vhost configuration

Hi,

ARgh, excuse me for the low cluerate. I've spend hours without
getting anything to work now so I am asking for a little hint.

I want my Apache to find the VirtualHost based on the X-ServerName
header (sent from my proxy) instead of the Host header. Sounds
simple enough, no?

So I've configured apache like:

...
Listen 127.0.0.1:8360
NameVirtualHost *

<virtualhost _default_>
    ServerName dev.site1.com
    ServerAlias site1.develooper.com
    PerlSetVar site site1
    DocumentRoot /home/web/htdocs/site1/
</virtualhost>

<virtualhost _default_>
    ServerName  dev.site2.com
    ServerAlias site2.develooper.com
    PerlSetVar site site2
    DocumentRoot /home/web/htdocs/site2/
</virtualhost>
...

I have a mod_perl PostReadRequest handler that among other things does
this:

  my $host = $r->header_in('X-ServerName');
  $r->hostname($host) if $host;


so when I do a request for http://site2.develooper.com/ it goes nicely
through the proxy and get the right X- header set to dev.site2.com and
such, but the backend httpd (with the above configuration) doesn't
pick up the virtualhost. 

So one of two:

  The virtualhost is picked before PostReadRequest is being invoked.

  My <virtualhost ...> configuration isn't right.

The basic goal is to work around mod_proxy setting the Host header to
Host: localhost:8360. (Maybe it could be accomplished in a simpler
way :-/ ).


 - ask

-- 
ask bjoern hansen, http://ask.netcetera.dk/   !try; do();


Re: vhost configuration

Posted by dean gaudet <dg...@arctic.org>.
all the vhost stuff is done before the post_read_request (see
ap_read_request()).

-dean

On Fri, 13 Apr 2001, Ask Bjoern Hansen wrote:

> Hi,
>
> ARgh, excuse me for the low cluerate. I've spend hours without
> getting anything to work now so I am asking for a little hint.
>
> I want my Apache to find the VirtualHost based on the X-ServerName
> header (sent from my proxy) instead of the Host header. Sounds
> simple enough, no?
>
> So I've configured apache like:
>
> ...
> Listen 127.0.0.1:8360
> NameVirtualHost *
>
> <virtualhost _default_>
>     ServerName dev.site1.com
>     ServerAlias site1.develooper.com
>     PerlSetVar site site1
>     DocumentRoot /home/web/htdocs/site1/
> </virtualhost>
>
> <virtualhost _default_>
>     ServerName  dev.site2.com
>     ServerAlias site2.develooper.com
>     PerlSetVar site site2
>     DocumentRoot /home/web/htdocs/site2/
> </virtualhost>
> ...
>
> I have a mod_perl PostReadRequest handler that among other things does
> this:
>
>   my $host = $r->header_in('X-ServerName');
>   $r->hostname($host) if $host;
>
>
> so when I do a request for http://site2.develooper.com/ it goes nicely
> through the proxy and get the right X- header set to dev.site2.com and
> such, but the backend httpd (with the above configuration) doesn't
> pick up the virtualhost.
>
> So one of two:
>
>   The virtualhost is picked before PostReadRequest is being invoked.
>
>   My <virtualhost ...> configuration isn't right.
>
> The basic goal is to work around mod_proxy setting the Host header to
> Host: localhost:8360. (Maybe it could be accomplished in a simpler
> way :-/ ).
>
>
>  - ask
>
> --
> ask bjoern hansen, http://ask.netcetera.dk/   !try; do();
>
>