Podivné chování apache name-based virutalhostů

Jan Houstek jan.houstek na mff.cuni.cz
Pondělí Květen 2 09:21:48 CEST 2005


On Mon, 2 May 2005, Matus UHLAR - fantomas wrote:

> > U kazde sekce <VirtualHost addr:port> se porovna addr:port s
> > pozadavkem. Je-li pritom addr DNS jmeno, proste se volanim
> > gethostbyname() prelozi na IP adresu.
>
> tento preklad sa robi afaik pri starte/rekonfiguracii, nie pri
> poziadavkach

Jasne, tak je to i rozumne. Jde o to, ze tam muze byt IP adresa i jmeno.
Kdy se jmeno preklada nema na popsany problem vliv.

> > Pokud takovy neexistuje, pouzije se main virtualhost.
>
> pokial nemate definovany <VirtualHost _default_>

Nikoliv. VirtualHost _default_ se pro IP adresu, ktera vyhovi nejake
NameVirtualHost direktive, nikdy nepouzije. Pouzije se pro adresy, na
kterych neni zapnuty name-based virtualhosting a ktere nevyhovi zadne jine
sekci <VirtualHost>

> Este stale to mam:
>
> NameVirtualHost fantomas.fantomas.sk
>
> <VirtualHost fantomas.fantomas.sk>
> ServerName default.fantomas.sk
> DocumentRoot /home/default
> </VirtualHost>
>
> <VirtualHost fantomas.fantomas.sk>
> ServerName fantomas.fantomas.sk
> DocumentRoot /var/www
> </VirtualHost>
>
> a request pre fantomas.fantomas.sk mi hodi stranku pre default.fantomas.sk
> Mozno by sme to mali reportovat znovu.

Jo, to je presne ono. Proste se to chova tak, jako kdybyste pod kazdy
radek <VirtualHost addr> prisal jeste "ServerAlias addr". No nic, vyresil
jsem to tim workaroundem popsanym v minulem mailu, udelam si v /etc/hosts
na jednotlive adresy nejaka symbolicka jmena, ktera nehodlam pouzivat v
Host:, napr.

1.2.3.4		virtualhost1
5.6.8.9		virtualhost2

a pak v konfiguraci apache v direktivach <VirtualHost >, NameVirtualHost a
Listen pouzivam jen tato jmena.

-- Honza Houstek


Další informace o konferenci Linux