2008. október 26., vasárnap

Virtual Host

Segitségével elérhetjük, hogy egyetlen gépen több domainnel rendelkező web server fusson. Anélkül hogy külön külön gépet vennénk minden egyes oldalhoz, az Apache kofigurációs fájlban pár sorral létrehouzhatunk új domaint.

Az egyedüli feltétele ennek , hogy a web servernek rendelkezni kell minden egyes virtual host számára külön IP címmel. Ez könnyen megoldható ha van a servernek fizikai net kapcsolata minden virtual hostnak, vagy pedig egyes op-rendszereknél virtual interface.
Ha egy szervert több néven szeretnénk elérni, mint pl: vas.hu és ftp.vas.hu, akkor a Virtual host használatán belül a ServerAlias-al elérhetjük, csak annyit kell beirni pl: ServerAlias vas.hu *.vas.hu, a *-karakter bármilyen szöveget helyettesít.
Egyedi autentikációt tudunk hozzárendelni honlapjainkhoz, legyen az http, vagy https protokoll.

Mime types

Lehetôség van arra , hogy a file-ok tipusát a nevük alapján meghatározzuk. Erre szolgál a mod_mime.c modul. Ami alapértelmezetten települ a szerverünkkel.

Arra használható, hogy meghatározzuk a mime tipusát egy dokumentumnak. Ez arra jó, hogy bizonyos esetekben különleges kezelést lehet vele megvalósítani, vagy egyszerûen csak arra , hogy a kliens megfelelôen tudja kezelni a dokumentumot.
A TypesConfig direktívával lehet beállítani, hogy hol található a tipusokat leíró fájl.

Alapesetben ez a conf/mime.types .
A dokumentumokat tartalmazó fájlok neve úgy van kezelve, hogy áll egy "base name"-bôl majd utána mindenféle kiterjesztésekbôl.
base.type.language.enc
* type : a dokumentum tipusa , TypesConfig, AddConfig
* language : a dokumentum nyelvezete, AddLanguage
* enc : a dokumentum kódolása, AddEnCoding
Ide kapcsolódik még a "SetHandler" ami azt állítja be, hogy az egyes tipusok esetén milyen kezelést valósítson meg a szerver.

Handlerek

A handlerek alatt azt értjük, hogy ha meghívunk egy fájlt , akkor arra a hívásra mintegy válaszként elindul egy akció. Az Apache-on belül ezt nevezzük handler-nek.
Általában minden fájl-nak van egy handler-e ami a fájl tipusán alapul. így normál esetben a fájlokat a szerver szolgáltatja. De van lehetôség ettôl eltérni. Erre lehet megadni handlereket, és tipusokat.
A handlerek vagy be vannak építve a szerverbe a modulok által, vagy az Action direktívával adhatunk meg saját handlereket az egyes tipusokhoz.
Saját handlert egy tipushoz az AddHandler direktívával adhatunk.
pl: AddHandler cgi-script cgi ekkor a cgi kiterjesztésû file-okat cgi-scriptként fogja kezelni.

Az Apache személy szerint azért tetszik mert ha be szeretném állítani, akkor csak megnyitom a *.conf fájlt, és átírom vagy megírom amit
szeretnék. Az egész dokumentum egy nagy XML fájl amihez egy nagyon jo dokumentációt kapunk ha ellátogatunk auz apache.org oldalra.

A globális konfigurációs fájl a /etc/apache2/apache2.conf. Itt olyan opciókat állíthatunk be melyek globálisan érvényesek lesznek minden
esetleges virtuális domain-re is. Ha jól tudom akkor ha forrásból telepít valaki Apache szervert akkor a globális konfigurációs fájlban kell
beállítani az adott domain specifikus beállításokat is. Ebben az esetben (amikor csomagból telepítjük) viszont minden domain külön
konfigurációs fájllal könyvtárban kell elkészíteni. Ettől még nem fog működni, „bekapcsolni” egy szimbolikus link-el kell amit
a /etc/apache2/sites-enabled/. Egy fájl található most itt, a default. ezt érdemes lehet sablonnak használni utána „kikapcsolni”, vagyis
törölni a /etc/apache2/sites-enabled/@000-default szimlinket. Persze otthoni felhasználásra tökéletes ez is, így most én sem törlöm, csak
beállítom azokat a fontos paramétereket melyekről már említést tettem.

NameVirtualHost budacsik.home:80

ServerAdmin opcionális@megadni.hu
DocumentRoot /var/www/budacsik

Majd átírtam a /etc/hosts file-t:

127.0.1.1 budacsik.home budacsik

Valamint: echo budacsik.home > /etc/hostname

Ezután újra lehet indítani az apache-ot:

/etc/init.d/apache2 restart

Ha hiba nélkül lezajlik az újraindulás akkor rendben. A /var/www/budacsik könyvtárat előzőleg létrehoztam (mkdir /var/www/budacsik).

name-based virtual hosting
Az a domain elnevezés a DNS szervereknek/kéréseknek nyitott portot takarja...

Amúgy meg 2-es apache esetén (tényleg, milyet is használsz?) a httpd-vhosts.conf-ba:
NameVirtualHost *:80

a hostolt domaineknek meg valami ilyesmi:

ServerAdmin ide@emailcim.jon
DocumentRoot /hol/is/vannak/a/fajlok
ServerName www.domainamithostol.ok
ErrorLog "|/usr/local/bin/rotatelogs /var/log/apache/domainamithostokok-error_log 20M"
CustomLog "|/usr/local/bin/rotatelogs /var/log/apache/domainamithostolok-access_log 20M"
common

Még sok hasznos beállítási lehetőség van. :-) Az apache dokumentáció pl. felettébb hasznos olvasmány.

"Egyre több informatikusnak van nemi élete. Hígul a szakma..."

http://httpd.apache.org/docs/1.3/vhosts/name-based.html

Nincsenek megjegyzések: