Malý průvodce konfigurací Apache

13. 3. 2001
Doba čtení: 4 minuty

Sdílet

Webový server Apache si čoraz rýchlejšie získava nových užívateľov a tým aj veľkú popularitu. Niet divu, veď je stabilný, spoľahlivý, flexibilný... no proste taký ideál medzi webovými servermi :). Skúsme sa na neho teraz pozrieť zblízka, teda konkrétne na jeho konfiguráciu.

Najdôležitejšou časťou konfigurácie tohoto serveru je nastavenie správnych hodnôt direktív v konfiguračnom súbore. Aby sme tieto hodnoty vedeli nastaviť, musíme najprv poznať, čo ktorá direktíva znamená. No a práve to je účelom tohoto článku. Konfiguračný súbor, o ktorom som sa vyššie zmienil, sa volá httpd.conf a býva umiestnený napríklad v adresáry /etc/httpd/conf/ alebo /usr/local/Apache/con­f, ale závisí to od distribúcie. httpd.conf je hlavným konfiguračným súborom, ale iné distribúcie môžu používať súbory tri: httpd.conf, access.conf a srm.conf. Potom srm.conf obsahuje nastavenia súvisiace s dokumentami poskytovanými serverom, access.conf zase s prístupom k týmto dokumentom. V novších verziách Apache sú ale všetky potrebné nastavenia zapísané práve v súbore httpd.conf. Jeho veľkosť sa môže pohybovať v rozmedzí 10 – 40kB. z toho je asi 80% komentárov k jednotlivým direktívam. Keď sme už pri tých komentároch – každý riadok začínajúci znakom # je serverom ignorovaný a slúži iba ako poznámka / okomentovanie (teda napríklad direktívy). Celý httpd.conf je rozdelený na 3 časti: 1. časť obsahuje viac-menej všeobecné direktívy, napríklad nastavenie portov, rôznych pomocných súborov a pod. 2. časť je hlavná konfigurácia – zabezpečenie najdôležitejších adresárov, logovacích súborov… No a nakoniec tretia časť sa zaoberá virtuálnymi servermi. Tak sa do toho teda pustime:)

ServerType
Sú dva spôsoby spúšťania serveru Apache. Buď z inetd (vtedy zvolíme parameter direktívy inetd), alebo ako samostatného démona (standalone). Odporúčam nastaviť na standalone.
ServerType standalone

ServerRoot
Hlavný adresár, v ktorom bude Apache hladať konfiguračné súbory (adresár conf/) a logy (adresár logs/). Zadáva sa bez lomítka na konci cesty!
ServerRoot /etc/inetd

PidFile
Súbor definovaný v tejto direktíve slúži serveru na ukladanie id procesov. Cesta k súboru sa zadáva buď relatívna (vzhľadom na ServerRoot):
PidFile logs/httpd.pid
alebo úplná:
PidFile /etc/inetd/log­s/httpd.pid
V tejto a nasledujúcich direktívach odporúčam používať relatívne cesty. Sú výhodnejšie v tom prípade, keby sme v budúcnosti zmenili hlavný adresár Apache (ServerRoot) – nemusíme direktívy s cestami prepisovať, ale server si ich naapenduje (prilepí) práve k ceste zadanej v ServerRoot.

ScoreBoardFile
Ďaľší súbor súvisiaci s procesmi – tentokrát konkrétne na komunikáciu medzi procesmi. Pri tejto direktíve dávame pozor, aby dva Apache nemali ten istý score board súbor!
ScoreBoardFile logs/Apache_sco­re_board

AccessConfig a ResourceConfig
Tieto dve direktívy potrebujeme v tom prípade, keď chceme/potrebujeme používať systém troch konfiguračných súborov (httpd.conf, access.conf a srm.conf). Vtedy ResourceConfig definuje miesto, kde sa nachádza srm.conf, a AccessConfig, ako už názov napovedá, miesto kde server nájde súbor access.conf. Aj tu platí odporúčané používanie relatívnych ciest.
AccessConfig conf/access.conf
ResourceConfig conf/srm.conf

Timeout
Definuje ako dlho bude server čakať na prijatie určitej požiadavky od klienta. Čas udávaný touto direktívou je v sekundách a obvykle býva nastavený na 300, čo je optimálna hodnota.
Timeout 300

KeepAlive
Funkcia Keep Alive umožňuje vybaviť viac požiadaviek počas jedného spojenia: otvorí sa spojenie na určitú požiadavku, načo sa táto požiadavka vybaví. Pokiaľ je nastavený KeepAlive On server počká čas definovaný direktívou KeepAliveTimeout a v prípade, že nepríde od klienta za tento čas daľšia požiadavka, spojenie sa uzatvorí. Možné hodnoty tejto direktívy sú On alebo Off :
KeepAlive On

MaxKeepAliveRe­quests
Maximálny počet požiadaviek, ktoré môže Apache vybaviť v rámci jedného Keep Alive spojenia. Optimálna hodnota je 100 požiadavok.
MaxKeepAliveRe­quests 100

KeepAliveTimeout
Udáva čas, ktorý bude Apache čakať na prijatie ďaľšej požiadavky v rámci jedného (Keep Alive) spojenia. Po uplynutí tejto doby sa spojenie medzi serverom a klientom uzavrie. Tak ako v direktíve Timeout, aj táto hodnota sa udáva v sekundách.
KeepAliveTime­out 15

StartServers
Táto direktíva určuje, koľko voľných démonov Apache sa má spustiť ihneď pri štarte serveru. Pri určovaní hodnoty zároveň myslíme na hodnotu udanú direktívou MaxSpareServers (pozri nižšie).
StartServers 10

MinSpareServers a MaxSpareServers
Tu zabezpečujeme minimálny a maximálny počet voľných, neobsadených démonov. Neobsadené kópie Apache sú potrebné napríklad pre náhly vzrast požiadaviek na server. V „kľudovom stave“ udržuje Apache počet svojich kópií medzi hodnotami MinSpareServers a MaxSpareServers. Pokiaľ sa dostane množstvo týchto kópii pod hranicu udanú MinSpareServers, Apache spustí nové, voľné kópie. A naopak, ak počet voľných kópií stúpne nad MaxSpareServers, Apache prebytočné kópie zruší.
MinSpareServers 8
MaxSpareServer­s 20

MaxClients
Maximálny počet démonov Apache, ktorý možu naraz bežat.
MaxClients 150

MaxRequestPerChild
Povolený počet požiadaviek na jedného bežiaceho démona Apache. Ak sa prekročí počet týchto požiadaviek, kópia démona Apache sa zruší. Obvykle sa hodnota tejto direktívy nastavuje na nulu, čo je vlaste vypnutie kontroly počtu požiadaviek, pretože nie je potrebná – používa sa zriedkavo, pri niektorých typoch operačných systémov, ako je napríklad Solaris.
MaxRequestPer­Child 0

Listen
Definuje, na akom porte a/alebo na akej ip adrese bude Apache čakať na požiadavky od klientov. napr.:
Listen 12.34.56.78:80
Listen 8080
znamená, že server bude „počúvať“ na porte 8080 na všetkých adresách a zvlášť ešte na adrese 12.34.56.78 na porte 80

bitcoin_skoleni

BindAddress
Určuje iba ip adresu (nie konkrétny port) na ktorej bude očakávať Apache požiadavky od klienta. Adresa zadaná touto direktívou bude jedinou adresou, z ktorej budú akceptované požiadavky na server. Zadanie znaku * spôsobí to isté, ako úplné vynechanie tejto direktívy – Apache bude reagovať na požiadavky na všetkých svojich ip adresách. Táto direktíva sa v konfiguračnom súbore smie použiť iba jediný raz!
BindAddress *

Nabudúce sa pozrieme na nastavenia vlastností a prístupových práv rôznych adresárov. Taktiež si povieme niečo o moduloch.