Vissza a bloghoz

Az Apache webszerver konfigurálása Ubuntu vagy Debian VPS-en

Az Apache webszerver konfigurálása Ubuntu vagy Debian VPS-en

Bevezetés

Apache jelenleg a legszélesebb körben használt webszerver a világon. Ez egy nyílt forráskódú szoftver, amelyet több mint húsz évvel ezelőtt fejlesztettek ki, és a az Apache Software Foundation tartja karban. 2020 szeptemberi adatok szerint a becslések szerint a világ összes weboldal-forgalmának 35%-át.

A fejlesztők a sebessége, biztonsága, megbízhatósága, robusztussága és egyszerű testreszabhatósága miatt részesítik előnyben az Apache-ot. Emellett az Apache képes megfelelni számos környezet igényeinek, mivel lehetővé teszi különböző bővítmények és modulok telepítését. Ez a konfigurációk egy olyan készletének köszönhető, amelyet a fejlesztők és a szerveradminisztrátorok különböző céloknak megfelelően módosíthatnak. Ebben az útmutatóban végigvezetjük Önt azokon az általános konfigurációs fájlokon és opciókon, amelyek befolyásolhatják a különböző eredményeket Ubuntu és Debian szervereken.

Debian és Ubuntu a legnépszerűbb választott szerver operációs rendszerek közé tartoznak. A kettőnek számos hasonlósága van. Például mindkettő az APT csomagkezelőt és a DEB csomagokat használja a kézi telepítéshez. Hasonlóan kezelik az Apache beállításait és könyvtárszerkezetét. Ezért ezt az útmutatót bármelyik operációs rendszerrel követni tudja. Először is, kövesse ezt az útmutatót az Ubuntu szerver néhány lépésben történő beállításához.

Ezután jelentkezzen be sudo jogosultságokkal rendelkező, nem root felhasználóként, és kezdjük el!

Az Apache telepítése Ubuntu és Debian rendszerekre

Ha a szerverén még nincs Apache, egyetlen paranccsal könnyen telepítheti. Először futtassa a frissítési parancsot:

Ezután a következő parancs kiadásával telepítheti az Apache-ot:

Amikor a telepítés befejeződött, a következő paranccsal ellenőrizheti a telepített verziót:

Ezen útmutató írásakor a verzió a következő volt:

Apache Web Server

Ezután látogasson el a szervere IP-címére vagy domain nevére. Látnia kell az alapértelmezett Apache indexoldalt:

Apache Web Server

Az Apache fájlhierarchiája Ubuntu és Debian disztribúciókban

Mind az Ubuntu, mind a Debian disztribúciók az apt csomagkezelőt használják. Hasonlóképpen, amikor telepít egy csomagot, az hasonló fájlhierarchiát hoz létre. Esetünkben mind az Ubuntu, mind a Debian esetében az Apache a konfigurációs fájljait a „/etc/apache2” könyvtárban tárolja. Lépjen be a könyvtárba a következő paranccsal, és listázza ki a könyvtár tartalmát:

A parancs kimenetét az alábbi képernyőképen láthatja:

screenshot

Számos olyan fájlt és alkönyvtárat láthat, amelyeket ismernie kell az Apache szerver beállításakor. Íme a leírásuk:

  • apache2.conf – Ez az Apache szerver fő konfigurációs fájlja. Emellett tartalmazza az összes alapértelmezett konfigurációt. Bár szinte minden konfiguráció elvégezhető ebből a fájlból, az egyszerűség kedvéért és az alapértelmezett fájl sérüléstől való megóvása érdekében mindig ajánlott külön erre kijelölt fájlokat használni.
  • conf-available – Ez a könyvtár tartalmazza a további helyi konfigurációs fájlokat és más olyan alkalmazások fájljait, amelyek még nincsenek társítva egyetlen modulhoz sem. Az ebben a könyvtárban lévő konfigurációk nem aktívak, hacsak nem engedélyezi őket. A a2enconf  paranccsal engedélyezhet egy konfigurációs fájlt. Íme a könyvtár tartalma:

Apache Web Server

  • conf-enabled – Ez a könyvtár tartalmazza a további helyi konfigurációkat és a megfelelő moduljaikhoz társított egyéb alkalmazások konfigurációs fájljait. Az ebben a könyvtárban található konfigurációs fájlok aktívak, és befolyásolják az Apache működését. Egy konfigurációs fájlt letilthat a a2disconf paranccsal. Íme a könyvtár tartalma:

conf-enabled

  • envvars – Ez a fájl tartalmazza az Apache2 környezeti változóit. Az ebben a fájlban lévő változók csak az Apache-ra vannak hatással, és nincsenek kapcsolatban a Linux rendszerével. Íme a fájl tartalma:

envvars

  • magic – Ez a fájl tartalmazza a fájlok MIME-típusának meghatározására vonatkozó utasításokat. Segít a szervernek meghatározni a fájl típusát.
  • mods-available – Ez az a könyvtár, amely a modulok betöltéséhez és konfigurálásához szükséges konfigurációs fájlokat tartalmazza. Azonban ezek még nincsenek engedélyezve. Az engedélyezésükhöz használhatja az a2enmod parancsot.
  • mods-enabled – Ez az a könyvtár, amely a modulok betöltéséhez és konfigurálásához szükséges konfigurációs fájlokat tartalmazza. Az ebben a könyvtárban található konfigurációk már engedélyezve vannak, és a megfelelő modulokra mutatnak. A modulokat letilthatja az a2dismod paranccsal. 
  • ports-conf – Ez az a fájl, amely meghatározza a virtuális gazdagépek számára elérhető portokat, valamint azokat a TCP-portokat, amelyeken az Apache figyel.
  • sites-available – Ez az a könyvtár, amely az Apache virtuális gazdagépekhez elérhető konfigurációs fájlokat tartalmazza. A virtuális gazdagépek lehetővé teszik, hogy az Apache különböző webhelyeket szolgáljon ki. Az ebben a könyvtárban lévő fájlok még nem aktívak. Egy virtuális gazdagép fájlt az alábbi paranccsal engedélyezhet: a2ensite.
  • sites-enabled – Ez az aktivált virtuális gazdagép konfigurációs fájlokat tartalmazó könyvtár. Általában szimbolikus linkeket tartalmaz a sites-available könyvtárban lévő fájlokra. Egy virtuális gazdagép fájlt az alábbi paranccsal tilthat le: a2dissite.

Az Apache konfigurációs fájlok moduláris felépítése lehetővé teszi a fájlok tetszés szerinti módosítását és hozzáadását.

Az Apache2.conf fájl tartalma

A(z) “/etc/apache2/apache2.conf” helyen található fájl tartalmazza az Apache fő konfigurációs fájljait. Pontosabban azokat a konfigurációs direktívákat tartalmazza, amelyek a szervernek szóló utasításokat adják meg. Három részből áll, amelyek meghatározzák a globális szerver folyamatkonfigurációkat, az alapértelmezett szerver konfigurációt, valamint a virtuális gazdagépek konfigurációit.

Ubuntu és Debian rendszereken a fájl nagy része a globális szerverfolyamat-konfigurációkat tartalmazza. Alul az alapértelmezett szerver és a virtuális gazdagépek konfigurációit találja meg az „Include” direktíva használatával. Az Apache az „Include” direktívát használja más konfigurációs fájlok beolvasására, majd azok beillesztésére az aktuális konfigurációs fájlba, attól a ponttól kezdve, ahol a direktíva megjelenik. Ez az Apache szerver indulásakor történik meg.

Az apache2.conf fájl aljára görgetve több include direktívát kell látnia. A direktívák betöltik a modulok definícióit a mods-enabled könyvtárból, a ports.conf fájlt, a helyi konfigurációkat a conf-enabled könyvtárból, valamint a virtuális gazdagépek’ konfigurációit a sites-enabled könyvtárból.

Globális szerverkonfigurációs szakasz

A globális szerverkonfigurációs szakasz azokat a beállításokat és utasításokat tartalmazza, amelyek az Apache globális működését vezérlik. Tartalmaz néhány olyan direktívát, amelyek értékeit módosíthatja az Apache viselkedésének megváltoztatásához. Beszéljünk meg ezek közül néhányat:

  • Timeout – Ez a direktíva határozza meg a szerver számára a kérés teljesítésére rendelkezésre álló maximális időt. Alapértelmezés szerint ez 300 másodperc, ami valószínűleg túl magas, ha gyorsabban reagáló alkalmazást fejleszt. Ezt módosíthatja egy kisebb értékre, ha a szervere elegendő erőforrással rendelkezik.
  • KeepAlive – Meghatározza, hogy az egyes kapcsolatok nyitva maradjanak-e ugyanazon kliens több kérésének kiszolgálására. Alapértelmezés szerint az értéke „On”. Ha azonban „Off” értékre van állítva, akkor minden egyes kérésnek új kapcsolatot kell létesítenie, még akkor is, ha ugyanattól a klienstől érkezik. Ez jelentős szervertúlterhelést okozhat.
  • MaxKeepAliveRequests – Ez szabályozza az egyetlen perzisztens kapcsolat során engedélyezett kérések maximális számát a kapcsolat lezárása előtt. Korlátlan számú kapcsolat engedélyezéséhez állítsa az értéket 0-ra. A maximális teljesítmény és hatékonyság érdekében állítsa a számot a lehető legmagasabbra.
  • KeepAliveTimeout – Meghatározza, hogy az utolsó kérés után maximum hány másodpercet kell várni ugyanazon kliens következő kérésére, mielőtt a kapcsolat lezárulna. Az alapértelmezett érték 5 másodperc. Ha az idő letelik, akkor a következő kérésnél új kapcsolat jön létre a kérés kezelésére.
  • HostnameLookups – Eldönti, hogy a DNS-lekérdezés engedélyezve legyen-e vagy sem. Alapértelmezés szerint ki van kapcsolva. Ha engedélyezi, akkor minden kérés legalább egy lekérdezést eredményez a névszerver felé, ami nagyban rontja a szerver teljesítményét.

Alapértelmezett virtuális gazdagép fájl

Az Apache szerver friss telepítése tartalmaz egy alapértelmezett virtuális gazdagép fájlt, amelynek neve 000-default.conf. Ez az a fájl, amely az alapértelmezett Apache index.html oldalt kiszolgálja. Ez a sites-available könyvtárba kerül. A fájl tartalma általános képet ad az Apache virtuális gazdagép fájljainak formátumáról. Írja be a következő parancsot a fájl megnyitásához:

Íme a fájl tartalma. A rövidség kedvéért eltávolítottuk a megjegyzéseket:

Ahogy a konfigurációs fejlécben látható: VirtualHost *:80, ez a virtuális gazdagép alapértelmezés szerint a 80-as porton érkező kérések kezelésére van konfigurálva. Ez a szabványos HTTP-port.

Az Apache-t úgy tervezték, hogy az adott kérésnek leginkább megfelelő, legspecifikusabb virtuális gazdagép-definíciót használja. Ez azt jelenti, hogy nem feltétlenül ez a konkrét virtuális gazdagép fogja kezelni a szerverre érkező összes kérést. Inkább, ha létezne egy másik, specifikusabb definícióval rendelkező virtuális gazdagép fájl, az felülírná ezt a fájlt.

Íme a virtuális gazdagép fájlban található direktívák leírása:

  • ServerAdmin – Megadja a kapcsolattartási e-mail-címet, amelyet szerverproblémák esetén kell használni. Az Apache ezt általában az általa generált hibaoldalon jeleníti meg. Ha a(z) ServerSignature értéket „Email”-re állítja a(z) /etc/apache2/conf-enabled/security.conf fájlban, az itt megadott e-mail-cím egy mailto
  • DocumentRoot – Ez a direktíva a weboldal fájljait tartalmazó könyvtárra mutat. Az alapértelmezett Apache üdvözlő index oldalt a(z) /var/www/html könyvtárban találja az Ubuntu 20.04-ben.
  • ErrorLog – Ez a direktíva határozza meg a hibanapló fájl helyét.
  • CustomLog – Ez a direktíva mutatja meg a hozzáférési napló helyét és a napló megjelenítési formátumát.

További virtuális gazdagép direktívák

  • ServerName – Megadja azt a tartománynevet vagy IP-címet, amelyet a virtuális gazdagépnek kezelnie kell. Ha több virtuális gazdagépet határoznánk meg, hogy az Apache szerverünk több weboldalt is kiszolgálhasson, hozzáadnánk egy ServerName direktívát, és megadnánk azt a domaint, amelyet az egyes virtuális gazdagépeknek ki kell szolgálniuk.
  • ServerAlias – Ez a direktíva lehetővé teszi, hogy egy virtuális gazdagép fájl egynél több névre is érvényes legyen, alternatív domaineket biztosítva ugyanazon tartalom eléréséhez. Például, amikor a felhasználók ugyanazt a tartalmat érik el, ha a domain név elé beírják a www előtagot. Például a következőt adhatnánk hozzá a(z) example.com domain virtuális gazdagépéhez:

A könyvtárdefiníciós direktíva

A valóságban valószínűleg több könyvtárban is lesznek weboldalfájljai. Az alapértelmezett virtuális gazdagép fájl nem tartalmazza a(z) Directory direktívát, mert csak egy index.html fájlt tud kiszolgálni. A(z) Directory direktíva határozza meg, hogyan kezeli az Apache a weboldal dokumentumgyökerén belüli különböző könyvtárakat. Ebben a direktívában határozhatja meg a fájlrendszerhez való hozzáférési korlátozásokat is. Alapértelmezés szerint az Apache csak a(z) /var/www könyvtárban lévő fájlokhoz engedélyezi az internetes hozzáférést. Ebben a könyvtárban létrehozhat más könyvtárakat is, amelyek a weboldal fájljait fogják tárolni. Ezenkívül megadhatja, hogyan szeretné elérni a könyvtárban lévő fájlokat. Egy minta definíció így nézhet ki:

A(z) <Directory /var/www/html> határozza meg azt a könyvtárat, amelyre ezek a szabályok vonatkozni fognak. A „AllowOverride” opció határozza meg, hogy egy „.htaccess” fájl felülírja-e a beállításokat, ha a megadott könyvtárba helyezi. Ez akkor szükséges, ha olyan keretrendszerekkel dolgozik, mint a Laravel, amelyek a .htaccess fájllal és az URL-átírással működnek.

Ha többet szeretne megtudni a virtuális gazdagépekről, látogasson el a útmutatónkra arról, hogyan állítsuk be az Apache virtuális gazdagépeket Ubuntu 20.04-en. Íme egy minta virtuális gazdagép fájl az összes általunk meghatározott direktívával:

Redirect, Alias és ScriptAlias direktívák

Bizonyos esetekben előfordulhat, hogy olyan webhelyfájlokat vagy futtatható fájlokat szeretne elérni, amelyek nem közvetlenül a DocumentRoot könyvtár alatt találhatók. Itt jön képbe ez a három direktíva.

A Redirect direktíva arra utasítja a klienseket, hogy küldjenek új kérést egy másik URL-lel. Általában akkor használja, ha a webhely látogatóit egy másik tartománynévre vagy IP-címre szeretné irányítani. Vegye figyelembe, hogy a Redirect az Alias és a ScriptAlias előtt hajtódik végre. Az Alias direktíva egy URL-t képez le egy könyvtárútvonalra. A ScriptAlias direktíva egy URL-t képez le azokra a könyvtárakra, amelyek a futtatható szkripteket tartalmazzák. Ahhoz, hogy az Alias és a ScriptAlias működjön, a könyvtár jogosultságait a web által használt www-data felhasználóra kell beállítania.

Webhelyek és modulok engedélyezése az Apache-ban

A virtuális gazdagépeket és modulokat engedélyezni kell, mielőtt aktívvá és elérhetővé válnának az Apache folyamat számára. Ezenkívül a virtuális gazdagépek a sites-available könyvtárban jönnek létre, ahogy azt korábban kifejtettük. Ha van egy example.com.conf nevű virtuális gazdagép fájlja, a következő paranccsal engedélyezheti azt:

A parancs engedélyezi a virtuális gazdagépet. A változtatások érvénybe lépéséhez azonban utasítania kell az Apache-ot a konfigurációs fájlok újratöltésére a következő parancs beírásával:

Előfordulhat, hogy le szeretné tiltani az example.com.conf nevű virtuális gazdagép fájlt, hogy az Apache ne használja azt a kérések kiszolgálására. Ehhez írja be a következő parancsot a fájl letiltásához:

A változtatások azonnali érvénybe lépéséhez ismét utasítania kell az Apache-ot a konfigurációs fájlok újratöltésére a következő parancs beírásával:

Hasonlóképpen, a modulokat is ugyanezzel a szintaxissal engedélyezheti és tilthatja le. A modul engedélyezésére szolgáló parancs a “a2enmod”, a modul letiltására szolgáló parancs pedig a “a2dismod.” Például létezik egy mod_rewrite nevű Apache-modul, amely segít az URL-ek átírásában a .htaccess konfigurációktól függően. Ezt a modult engedélyeznie kell a .htaccess fájl működéséhez. Ezt a következő parancs beírásával teheti meg:

A változtatás érvénybe lépéséhez újra be kell töltenie az Apache konfigurációit. A modult a következő parancs beírásával is letilthatja:

Ezt követően töltse újra az Apache2 konfigurációit, hogy a változtatások azonnal érvénybe lépjenek.

Végezetül íme néhány további forrás, amelyek segítenek megismerkedni az Apache webszerverrel:

Összegzés

Ebben az útmutatóban bemutattuk az alapvető Apache konfigurációs fájlokat Ubuntu és Debian rendszereken. Ahogy bemutattuk, az Apache rendkívül moduláris, ami azt jelenti, hogy számos modult telepíthet a különböző feladatok elvégzéséhez.

Könnyedén engedélyezheti és letilthatja ezeket a modulokat, valamint módosíthat más konfigurációkat a különböző eredmények elérése érdekében. Most már módosíthatja a helyi konfigurációs fájlokat, amelyek ezután bekerülnek a fő konfigurációs fájlba. Így nem kell aggódnia a globális konfigurációs fájl sérülése miatt.

Kellemes számítógéphasználatot!

author

Manpreet Singh

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.