Vysvetleni nastaveni APACHE
Ing. Pavel PaJaSoft Janoušek
PaJaSoft na FoNet.Cz
Čtvrtek Únor 17 09:22:05 CET 2005
Zdravím,
Michal <mailto:michaels na centrum.cz> wrote:
> Můžete mi nějaká ochotná duše vysvětlit, jaký je rozdíl mezi
> Port 8001
"primární" port, na kterém Apache poslouchá...
> Listen 8001
... a také může poslouchat na mnoha jiných portech...:-)
> BindAddress *:8001
Tento zápis neznám a nepoužívám, používám pro případ, kdy má server
více síťových karet nebo virtuálních síťovek, prostě kdy má více IP adres
naleznutelných v systému a chci, aby poslouchal JEN na vyjmenované škále
(typicky - mám 2 veřejné IP adresy, na každé jiná instalace Apache...) IP
adres => BindAddress aaa.bbb.ccc.ddd
> <Virtualhost *:80> a <Virtualhost _default_:80> byť jsem to na
> apache.org našel, ale mě toto připadá jako stejný zápis.
S virtual hostama jsem se trápil hodně dlouho a osobně přiznávám, že teprve
velmi nedávno mi definitivně svitlo, protože Apache 1.x se chová výrazně
jinak než Apache 2.x, ba co více, to co funguje a bylo možné v Apache 1.x
NEFUNGUJE a Apache 2.x dokonce křičí...
Špatná konfigurace zcela funkční pod Apache 1.x:
<BLBE>
NameVirtualHost aaa.bbb.ccc.ddd
<VirtualHost aaa.bbb.ccc.ddd:80>
ServerName AAA
</VirtualHost>
<VirtualHost aaa.bbb.ccc.ddd:80>
ServerName BBB
</VirtualHost>
<VirtualHost aaa.bbb.ccc.ddd:443>
ServerName AAA
</VirtualHost>
</BLBE>
Dospěl jsem k názoru, že pro valnou většinu konfigurací (= NameBase
virtualy) je vhodné udělat následující (plně funkční jak v Apache 1.x, tak
2.x):
a) mám pouze HTTP:
NameVirtualHost *
<VirtualHost *>
ServerName A
.
.
<VirtualHost>
<VirtualHost *>
ServerName B
.
.
<VirtualHost>
.
.
.
b) mám HTTP i HTTPS:
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:443
ServerName A
SSLEngine on
+ další SSL direktivy, několik jich je možno dát přímo do mod_ssl modulu,
takže jsou pro všechny virtuály stejné (Random seed, SSLv3 + TLSv1...)
.
.
<VirtualHost>
<VirtualHost *:80>
ServerName A
.
.
<VirtualHost>
<VirtualHost *:80>
ServerName B
.
.
<VirtualHost>
.
.
.
Můžete dokonce udělat i více <VirtualHost *:443>, ale připravte se,
že bude fungovat skoro vše (nějaké postraní efekty, které by možná
bezpečnost mohly nabořit jsem zcela neřešil, např. klientské certifikáty
vůbec... - CA jsem nekonfiguroval, mne stačíl zatím vždy HTTP přenos
tunelovaný SSL), akorát v potaz se bude brát POUZE první certifikát (tedy
první *:443), zatímco virtuály se pak skutečně budou chovat tak jak byste
čekal... - samozžejmě že se celou dobu bavíme o NameBased virtuálech,
IP-based je o trochu něčem jiném (a pro plnohodnotné SSL skutečně potřebné)
Prostě a jednoduše NameVirtualHost <ident> je pouze indetifikátor
(asi HASH), který se použije v <VirtualHost <ident>> ale jiný technický
význam nemá...
> A poslední věc. Chci rozjet virt. webservery jak pod SSL tak i jen na
> 80. Musím vytvořit <Virtualhost> 2x se stejnými - jednou s
> SSLengine ON a jednou
> jako normální virt. webserver nebo se to dá nějak dát do jednoho
> <virtualhost> ?
Také jsem se touto myšlenkou zabýval, možná mylně jsem srozuměn s
tím, že je nutné mít ty virtuály dva a také to tak všude konfiguruji a na
problém jsemnenarazil, ale jak říkám, možná existuje elegantnější a
jednodušší postup, já jsem holt stará škola...:-)
-------------------------------------------------------------------
Ing. Pavel Janousek (PaJaSoft) FoNet, spol. s r. o.
Technicka podpora, Intranet/Internet Sokolova 67, 619 00 Brno
E-mail: mailto:Janousek na FoNet.Cz Tel.: +420 5 4324 4749
WWW: http://WWW.FoNet.Cz/ E-mail: mailto:Info na FoNet.Cz
-------------------------------------------------------------------
Další informace o konferenci Linux