– zrušit ho tak rychle jak to půjde
Apache1 poslouchá již jen na :80. A všechny virtualhosty
co nezná redirektí na :8080 (tam je Apache2). Takže mažte virtualhosty co v 'Apache1'
nejsou potřeba.
Konfigurace apache2 nyní vypadá následovně:
/etc/apache2/sites-available/0README/etc/apache2/sites-available/AAA-default-setting/etc/apache2/sites-available/AAB-default-host/etc/apache2/sites-available/com.banzaiinteractive.zz…
/etc/apache2/sites-available/cz.ucw.drak.lvonca/etc/apache2/sites-available/cz.ucw.drak.zz
Pojmenovani je zvoleno tak, aby se virtualhosty spravne radily. Apache
totiz prochazi adresar abecedne a prvni namatchovany virtualhost
pouzije. Proto musi apache videt nejdriv lvonca.drak.ucw.cz a potom
*.drak.ucw.cz.
V /etc/apache2/httpd.conf je v soucasne dobe nejake bezpecnostni nastaveni.
Ja myslim, ze by melo byt uvedeno jinde, ale pokud vse bude obaleno
<Directory> </Directory> tak je to nastaveni jeste celkem v poradku.
V /etc/apache2/conf.d/* si debiani baliky instaluji svoje veci. Maji
ale nesvar pridavat Aliasy a Redirecty. Vse co neni obaleno <Directory>
</Directory> tedy zabalte do <Macro> </Macro> a pak to pouzijte ve
spravnem virtualhostu.
Do apache2 jsem nainstaloval mod_makro. Do AAA-default-setting jsem
dal makra, ktera se budou pouzivat ve vetsine virtualhostu.
Kdyz pisete novy virtualhost udelejte
soubor /etc/apache2/sites-available/name.domain.the
<Macro TheDomainName>
ServerName the.domain.name
ServerAlias another.domain.name *.multiplematch.domain.name
documentroot ....
CustomLog ...
ErrorLog ...
</Macro>
<VirtualHost *:8080>
Use TheDomainName
</VirtualHost>
<VirtualHost *:443 *:8081>
Use SetupSSL
Use TheDomainName
</VirtualHost>
Stavajici virtualhosty jsem prevedl na vyse uvedeny zpusob, nicmene zachoval jsem rozdily http oproti https verzi, pokud nejake byly. Pokud si myslite, ze v dannem virtualhostu byt rozdily nemaji, tak to opravte.
U zadneho virtualhostu *:8080 nikdy nezapinejte SSL
Ve vsech virtualhostech *:443 a *:8081 vzdy uvdete
Use SetupSSL - to zapne ssl a uvede certifikaty. Ty musi
byt pro vsechny hosty stejne!
Nikdy nepouzijte <VirtualHost the.domain.name:8080>, rozbije
to stavajici konfiguraci a apache bude matchovat hosty zvlastnim
zpusobem. Pozor, na tohle apache NEUPOZORNI (on upozornuje jen na
* versus *:port), nebo alespon neupozorni na to na konzoli.
the.domain.name se matchuje pres ServerName a ServerAlias
Pokud apache nechce nastartovat, projdete errorlogy jednotlivych
virtualhostu. Nicmene pravdepodobne mate SSL mismatch - vsechny
virtualhosty na jednom portu MUSI mit SSL nastavene STEJNE! (Delal
jsem experimenty se 'SSLEngine optional', ale nenarval jsem mu
tam to co jsem chtel, takze pouzivame 'SSLEngine on'.)