[LUGOS] Apache konfiguracija in trac
Žiga Böhm
Ziga.Boehm at vseved.net
Fri Nov 24 13:30:44 CET 2006
Poganjam Apache 2.0.55 skupaj z mod_python, ki ga potrebujem za trac
(http://trac.edgewall.org/). "Težava" nastane, ker si mi trac javlja na
naslovu, za katerega ni bil specifično konfiguriran (da, uporabljam imensko
virtualno strežbo aka name based virtual hosting), pa mi ni povsem jasno
zakaj pride do tega pojava!?
1) V /etc/hosts imam zapisani naslednji pretvorbi:
127.0.0.1 localhost
192.168.0.1 trac.nekje.si trac
192.168.0.1 test.nekjedrugje.si test
2) Prvi virtualni alias je nastavljen za naslov "localhost" in prisluškuje
vsem IP naslovom, se pravi da uporabljam zanj direktivi <VirtualHost *:80> in
ServerName localhost
Posebej imam zanj nastavljen še AliasMatch, ki poskrbi za preumeritev vseh
naslovov tipa ^/manual - ta virtualni strežnik mi služi za dostop do Apache
dokumentacije.
3) Drugi virtualni alias je nastavljen na naslov trac.nekje.si in posluša le
na naslovih 127.0.0.1 in 192.168.0.1, torej zanj uporabljam direktivi
<VirtualHost 127.0.0.1:80 192.168.0.1:80> in ServerName trac.nekje.si
V _okviru tega drugega_ virtualnega hosta imam nastavljeno še direktivo:
<Location />
SetHandler mod_python
...
</Location>
ki je potrebna, da lovi vse korenske klice virtualnega strežnika za trac.
4) Prvi virtualni strežnik (localhost) je v konf. datoteki referiran pred
drugim (trac.nekje.si)
5) Posebej imam nastavljen tudi virtualni strežnik, ki lovi vse ostale
(praviloma neobstoječe) domene in sicer z <VirtualHost _default_:80>, ki jih
preumerjam k nekemu generičnemu sporočilu.
Preusmerjanje neobstoječih domen deluje bp, Trac tudi - vendar se mi v zgoraj
omenjeni konfiguraciji trac javlja tudi na naslovu http://localhost/manual,
čeprav bi se mi morala tu odpreti Apache dokumentacija...
No, razlika s klicanjem naslova http://trac.nekje.si je, da mi v primeru
klica http://localhost/manual trac vrne napako:
Not Found
No handler matched request to /manual/
Če Drugi virtualni strežnik (glej točko 3) nastavim, da ne posluša na IP
naslovu 127.0.0.1 (torej samo na naslovu 192.168.0.1:80), stvar deluje povsem
v skladu s pričakovanji.
Resnično ne razumem, zakaj Apache v takšni konfiguraciji spregleda naslov
localhost, test.nekjedrugje.si pa razreši pravilno, torej v generično
sporočilo!
Sumim, da za vsem skupaj stoji mehanizem "name based virtual hostinga" in
način kako se direktive za imena virtualnih strežnikov razrešujejo v (iste)
IP naslove... vendar si s tem svojim "gut feelingom" žal ne morem pomagati
pri iskanju racionalne razlage.
Prosim torej za pomoč bolj izkušenih!
Hvala in lep pozdrav,
Žiga B.
More information about the lugos-list
mailing list