Fogalmak: konfigurációs direktívák. Konfigurációs fájlok, direktívák. Alapvető konfigurációs direktívák. szerver folyamatok. A könyvtárakhoz és fájlokhoz való hozzáférés szabályozása.

A konfiguráció (lat. configuratio - kölcsönös elrendezés) egy speciális logikai és módszertani eszköz, mentális technika a különböző tantárgyak ismereteinek, ugyanazon tárgyra vonatkozó különböző elképzelések szintetizálására.

irányelvek, (a latin directio - irányból). Általános útmutatás, amelyet egy felsőbb hatóság adott egy beosztottnak (szerver a munkaállomás stb.) .

A konfigurációs fájl meglehetősen egyszerű formátumú fájl. Minden sor egy kulcsszó és egy vagy több argumentum. Az egyszerűség kedvéért a legtöbb sor csak egy argumentumot tartalmaz. Minden, ami a # szimbólum után következik, megjegyzés, és figyelmen kívül marad.

Az Apache az /etc/httpd/conf/ könyvtárban található szolgáltatásfájlok módosításával állítható be. A fő webszerver konfigurációs fájlja a httpd.conf. A konfigurációs direktívák különféle fájlokban helyezhetők el, amelyek tartalmazzák az Include filename.conf fő struktúrát.

Ha bármely fájl vagy könyvtár helye implicit módon meg van adva a konfigurációs fájlban (az explicit hely a fájlrendszer gyökeréből indul - "/" karakterrel), az Apache a ServerRoot direktívában megadott könyvtárat használja a fájl valós helyének meghatározásához. cél.

Az Apache modulok és konfigurációs direktívák leírása

Az irányelvek a következő szinteken használhatók:

A szerver konfigurációs szintje - direktíva csak a fő konfigurációs fájlban használható.

V. szint - a direktíva eltérően használható a különböző virtuális gépekhez.

D szint - Bármely ilyen szintű könyvtárdirektíva esetén megadhatja a saját beállításait.

H-szintű .htaccess fájlok – a direktíva használható .htaccess fájlokban olyan helyeken, ahol ezt a szerver engedélyezi.

A fájlnév paraméter használata a direktívában bármikor egy abszolút ("/"-vel kezdődik) vagy relatív elérési utat jelöl a ServerRoot könyvtártól a fájlig.

CORE - webszerver mag (Apache fő modul)

AccessConfig fájlnév

Beállítja a konfigurációs fájl helyét. Az alapértelmezett rendszerkonfigurációs fájl a conf/access.conf; a fájl olvasásának letiltásához javasoljuk a /dev/null beállítást.

AccessFileName fájlfájl...

Beállítja a menet közbeni konfiguráláshoz használt hozzáférési fájlok nevét, az alapértelmezett .htaccess.

AddModule modul modul ... [A]

Aktivál egy külön könyvtárfájlként szállított, dinamikusan betöltött modult.

AddModule modul modul...

Aktivál egy dinamikusan betöltött modult, amely önálló könyvtárfájlként van biztosítva vagy a fő httpd-modulon belül van lefordítva.

AllowOverride param param...

Beállítja azokat a szabályokat, amelyek alapján az Apache a belső .htaccess fájlokból származó direktívákat használja;

Nincs – figyelmen kívül hagyja;

All - minden direktívát használ;

Opciók - lehetővé teszi az Opciók és az XBitHack használatát;

Indexek - direktívák a címtárindexelés kezeléséhez;

FileInfo - direktívák a fájltípusok és kezelőik kezelésére;

AuthConfig - direktívák az Auth*-könyvtárak elérésére;

Limit - engedélyezési/megtagadási/rendeleti direktívák.

AuthName tartomány

AuthType

A webhely-könyvtárak eléréséhez szükséges felhasználónév és jelszó kérésének és átadásának meghatározására szolgál. Leggyakrabban Basic-et használnak, ritkábban - Digest és mások.

BindAddress cím [A]

Megadja azt a címet, ahol az Apache fogadja a kapcsolatokat. Használhatja a gazdagépnevet, IP-címet vagy *.

ClearModuleList[A]

Az irányelv törli a betöltött modulok listáját. Ezt az utasítást követően az AddModule direktívákat kell használnia a szükséges modulokkal való együttműködéshez.

ContentDigest be|ki

Engedélyezi vagy letiltja az adatok MD5-kivonatának továbbítását. A rendszer az összes átvitt oldalra kiszámítja, és nem kerül gyorsítótárba.

CoreDumpDirectory könyvtárnév [A]

Az Apache arra a könyvtárra mutat, ahol az összeomlások által generált alapvető kiíratási fájlok kerülnek tárolásra.

DefaultType mimetípus

Megadja az ügyfeleknek küldött MIME típust, ha az Apache nem tudja meghatározni a típust a mime.types fájl vagy az AddType direktívák segítségével. Az alapértelmezett érték szöveges/sima.

...

Irányelvek egy csoportját egyesíti, amelyek meghatározzák az Apache viselkedését az ebben a könyvtárban található dokumentumok elérésekor. Megengedett névmaszkok használata - szimbólumok *, ? shell szabályok szerint. Ha maszkot használunk, egy tilde ~ kerül a név elé.

...

Meghatározza a reguláris kifejezések által adott könyvtárak csoportját, és beállítja a szabályokat az Apache számára, hogy működjön a csoportban lévő könyvtárakkal és fájlokkal.

DocumentRoot dirname

Jelzi a szervernek a címtárfa gyökerének helyét, amely alatt a webszerver adatszerkezete található.

ErrorDocument fájlnév|karakterlánc|URL

Hiba esetén a megadott oldalakra irányít át. A felmerült helyzethez megjegyzést is beállíthat, amelynek egyetlen idézettel kell kezdődnie. Példa:

ErrorDocument 500 http://foo.example.com/cgi-bin/tester

ErrorDocument 404 /cgi-bin/bad_urls.pl

ErrorDocument 401 /subscription_info.html

ErrorDocument 403 "Sajnos"nem engedélyezem a hozzáférést ma"

ErrorLog fájlnév

A hibanaplófájl neve. Ha a paraméter karakterlánc (/)-vel kezdődik, akkor a fájl elérési útját meg kell adni a ServerRoot-ból; ha (|-vel) kezdődik, akkor a hibaüzenetek a szabványos bemeneten lévő megadott parancshoz kerülnek. Ilyen módon például megvalósíthatja a napló azonnali mentését az SQL DBMS-ben, vagy mentheti azokat azonnal tömörítve, például a gzip-be. Az Apache 1.3-as és újabb verziói alapértelmezés szerint kinyomtatják az üzeneteket a rendszernaplóba, ha a rendszer támogatja azt; de ez letiltható a syslog:facility segítségével.

...

Fájl hozzáférés-szabályozás. szakaszok ugyanabban a sorrendben kerülnek feldolgozásra, mint a konfigurációs fájlban az irányelv szakaszainak beolvasása után és .htaccess fájlokat, de a könyvtárszakaszok beolvasása előtt . Az argumentumnak tartalmaznia kell egy fájlnevet vagy egy maszkot, amely "?" - bármilyen karakter, "*" - bármilyen karakterlánc. A ~ kiegészítő karakterrel kiterjesztett regek használhatók. kifejezések (lásd a grep(1) REGULAR EXPRESSSIONS szakaszát) Például: egyezik az interneten gyakran használt grafikus fájlokkal.

...

Ugyanaz, mint a , de reguláris kifejezéseket használ.

Ez csak az Apache elindításához és a környezetben való forking folyamatokhoz, valamint az adott névhez tartozó jogokhoz kapcsolódik.

HostNameLookups on|off|double

Azt szabályozza, hogy a látogató gazdagépneve meghatározható-e a fordított DNS-ből. Lassan működik, és alapértelmezés szerint le van tiltva. A Double azt jelzi, hogy a gazdagépnevet további ellenőrzésnek kell alávetni a kérelmező gazdagép IP-címével.

IdentityCheck on|off

Engedélyezze az RFC1413 hitelesítést. A funkció engedélyezése jelentősen megnöveli a szerver elérési idejét.

...

és csak akkor kell végrehajtani, ha ez a beállítás az Apache belsőjében van megadva. A paramétert megelőző [!] karakter azt jelzi, hogy az direktívák blokkja csak akkor kerül beolvasásra, ha a paraméter nincs megadva.

...

Megadja, hogy egy direktívapárból álló blokkon belül elhelyezett direktívák legyenek és csak akkor kell végrehajtani ezt a modult Apache nyelven állították össze. A modult megelőző [ !] karakter azt jelzi, hogy a direktívablokk csak akkor kerül beolvasásra, ha a paraméter nincs megadva.

Fájlnév hozzáadása [A]

Az direktíva lehetővé teszi, hogy konfigurációs fájlokat is beépítsen a szerver konfigurációjába.

KeepAlive be|ki [A]

Lehetővé teszi az ügyfél számára, hogy egymás után több fájlt kérjen a TCP-kapcsolat megszakítása nélkül.

KeepAliveTimeout mp [A]

Megadja azt az időt (másodpercben), amíg a TCP-kapcsolat bezárul, és az Apache megvárja az ügyfél következő kérését.

...

Lehetővé teszi annak megadását, hogy melyik HTTP metódus (például GET vagy POST) kerüljön bele ... beléptető parancsok.

Használható módszerek: GET, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK.

Hallgatás port [A]

Meghallgatásra készteti az Apache-t megadott címeketés portok. Például a 80-as és 8000-es porton való figyelésre kényszerítéséhez használja a következőket:

Ha azt szeretné, hogy az Apache különböző interfészeken fusson meghatározott portszámokkal, használja a következőket:

Figyelj 192.170.2.1:80

Figyelj 192.170.2.5:8000

ListenBacklog hossza[A]

A kapcsolatfeldolgozási sor maximális hossza.

...

Részletek az apache-kézikönyvben :)

...

Részletek az apache-kézikönyvben

Lockfile fájlnév[A]

Az irányelv beállítja a zárfájl elérési útját.

LogLevel emerg|alert|crit|error|warn|notice|info|debug

Beállítja a protokoll információtartalmának szintjét (a szerver működésének naplófájlja). Legalább a kritikus szint használata javasolt.

MaxClients count[A]

Az irányelv korlátozza a szerverhez intézett egyidejű kérések számát. Valójában ez a szám nem haladhatja meg a kiszolgáló gyermekfolyamatok számát, amely alapértelmezés szerint nem lehet több 256-nál. A helyzet javításához szerkessze a HARD_SERVER_LIMIT fájlt a httpd.h-ban, és fordítsa le.

MaxKeepAliveRequest count[A]

Lehetővé teszi az ügyfél számára, hogy a TCP-kapcsolat megszakítása nélkül sorban lekérje a megadott számú fájlt, ha a KeepAlive engedélyezve van. Ha a paraméter értéke 0, akkor az Apache csak a KeepAliveTimeout paraméter figyelembevételével zárja be a kapcsolatot.

MaxRequestsPer Child count [A]

Az irányelv korlátozza az egyes gyermekfolyamatok által feldolgozható kérések számát. Ha a MaxRequestsPerChild értéke 0, a kérések száma korlátlan.

MaxSpareServers száma[A]

Az irányelv beállítja a tétlen szerverfolyamatok kívánt maximális számát. Az utasítás haszontalan, ha az Apache Microsoft Windows verzióját használja.

MinSpareServerek száma [A]

Az irányelv beállítja a tétlen szerverfolyamatok kívánt minimális számát. Az utasítás haszontalan, ha az Apache Microsoft Windows verzióját használja.

NameVirtualHost port[A]

Azt jelzi, hogy az adott portnévre irányuló kéréseket a megcímzett gazdagép nevével kell elválasztani ("Host:" HTTP-fejléc). Lehetővé teszi több virtuális gazdagép meghatározását egy IP-címhez.

Options param params...

Megadja az Apache műveleti beállításait a megadott tartalomhoz. Az összes lehetséges beállítást az apache-kézikönyv részletesen leírja. Gyakran használt: Indexek - bekapcsolja a könyvtár tartalmának megjelenítését, ha nem található benne indexfájl (DirectoryIndex direktíva); ExecCGI - lehetővé teszi a végrehajtható fájlok (cgi, perl szkriptek) elhelyezését ebben a könyvtárban; Tartalmazza – tartalmazza a fájlok SSI-könyvtárba helyezésének lehetőségét. Minden beállítást a megfelelő modul támogatja, és előfordulhat, hogy nem működik, ha nincs betöltve a megfelelő modul. Minden Options direktíva kiegészíti a már ismert, a szülőkönyvtárak számára definiált opciókat. Ebben az összefüggésben minden beállítás előtt + vagy - szerepelhet a "be- vagy kikapcsoláshoz".

PidFile fájlnév [A]

A direktíva beállítja annak a fájlnak a nevét, amelyhez a szerver a folyamatazonosítót írja.

Megadja az Apache portot – egy szám 0 és 65535 között (ügyeljen arra, hogy egyes portokat más protokollok is használhatnak, lásd az /etc/services fájlt). A http protokoll szabványos portja a 80.

felhasználói azonosító szükséges|csoport|érvényes felhasználó|fájltulajdonos|csoporttulajdonos [A]

Meghatározza, hogy mely felhasználók férhetnek hozzá a címtárhoz.

Felhasználói azonosító megkövetelése – csak ezek a felhasználók férhetnek hozzá

Csoport megkövetelése csoportnév [csoportnév] – ezeknek a csoportoknak az összes felhasználója

érvényes felhasználó megkövetelése – minden érvényes felhasználó.

ResourceConfig fájlnév[A]

A szerver további direktívákat olvas be ebből a fájlból, miután elolvasta a httpd.conf fájlt. A fájlnév relatív a ServerRoothoz. Letiltható: ResourceConfig /dev/null

RLimitCPU max|sec[ max|sec] [A]

RLimitMEM max|byte[ max|byte] [A]

RLimitNPROC max|count[ max|count] [A]

Bármelyik|minden [A]

Megadja a hozzáférési házirendet, ha az Engedélyezés és a Kötelező is használatban van. Akkor használatos, ha a területhez való hozzáférést felhasználónév/jelszó és ügyfélcím korlátozza. Ebben az esetben az alapértelmezett ("mind") megköveteli, hogy az ügyfél érvényesítse a címet, és adja meg a helyes felhasználónevet és jelszót. Az "any" paraméter esetén a kliens akkor kap hozzáférést, ha a megfelelő felhasználónevet és jelszót adta meg, vagy átment a hoszt korlátozáson. Használható jelszóval való hozzáférés korlátozására, de egy adott címről jelszó nélkül engedheti át az ügyfeleket.

ScoreBoardFile fájlnév [A]

A direktíva a szerver által a gyermek- és szülőfolyamatok közötti kommunikációhoz használt fájlnév megadásához szükséges. Megtudhatja, hogy szükség van-e erre a fájlra, ha elindítja az Apache-t, és megnézi, hogy létrehozott-e egy fájlt a megadott néven. Ha igen, akkor meg kell győződnie arról, hogy az Apache csak egy példánya használja.

SendBufferSize bytes[A]

Beállítja a TCP puffer méretét.

ServerAdmin e-mail

Beállítja azt az e-mail címet, amelyet a szerver a hibaüzenetekben az ügyfélnek mutat.

ServerAlias ​​gazdagépnév

Megad egy alternatív virtuális gazdagépnevet.

ServerName gazdagépnév

Az irányelv beállítja a szerver nevét; linképítésben használják. Ha a név nincs beállítva, a szerver megpróbálja lekérni a saját IP-címéről.

ServerPath elérési út

Az irányelv beállítja a gazdagép örökölt elérési útját.

ServerRoot elérési út[A]

Beállítja azt a könyvtárat, ahol a szerver él. Általában conf/ és logs/ alkönyvtárakat tartalmaz. Az egyéb konfigurációs fájlok elérési útjai ehhez a könyvtárhoz képest vannak kialakítva.

ServerSignature on|ff|mail

Beállít egy karakterláncot a szerver által generált dokumentum alján. Alapértelmezés szerint le van tiltva, Be – a virtuális gazdagép kiszolgálóverzióját és ServerName-jét mutatja, az Email egy mailto: hivatkozást ad hozzá a ServerAdminhoz

ServerTokens Minimális|OS|Teljes [A]

A kiszolgáló által a kliensnek küldött fejlécet szabályozza, amely leírja a szerver operációs rendszerét és a lefordított modulokat.

Kiszolgálótípus önálló|inetd[A]

Meghatározza, hogy a rendszer hogyan indítsa el a szervert. inetd – Az inetd rendszerfolyamatból fut. önálló – démonfolyamatként.

StartServerek száma[A]

Beállítja az indításkor létrehozott gyermekfolyamatok számát. A szám egyébként a terhelés függvényében dinamikusan változik, ezen a beállításon általában nincs miért változtatni.

Az az idő, ameddig az Apache várakozik: GET-kérés fogadása, TCP-csomagok fogadása POST és PUT kérések esetén, szünet az ACK-ek között, amikor TCP-csomagokat küld a válaszokban.

UseCanonicalName on|off

Arra készteti az Apache-t, hogy létrehozza az általa létrehozott oldalak nevét a SERVER_NAME és SERVER_PORT értékekkel.

felhasználónév

Beállítja azt a felhasználói azonosítót, amellyel a szerver válaszolni fog a kérésekre. Az irányelv használatához a kiszolgálónak rootként kell futnia.

...[A]

Egy direktívapárból alkotott blokkon belül elhelyezett direktívák és Meghatározom az adott virtuális gép konfigurációját. Minden virtuális gazdagépnek egyedi IP-címmel, portszámmal vagy gazdagépnévvel kell rendelkeznie. Akkor van értelme a direktíva használatának, ha például a szerver rendelkezik egy hálózati interfésszel a belső hálózathoz és egy másik interfésszel a külső hálózathoz.

mod_env - CGI/SSI fájlokban feldolgozandó változók beállítása és átadása

PassEnv változó[ változó] ...

Környezeti változót (pl. HOME) ad át a kezelőknek.

SetEnv változó értéke

A megadott értéket a megadott környezeti változóba írja.

UnsetEnv változó[változó] ...

Alaphelyzetbe állítja a változót, így lehetetlenné teszi a kezelőkből való kiolvasását.

mod_setenvif - feltételes feltételek használata a környezeti változók beállításához

BrowserMatch regex env-változó[=érték] ] ... [A]

Használja az átadott reguláris kifejezés szűrőként a User-Agent fejléchez az ügyfélböngészőből. Sikeres találat esetén inicializálja a változót a megadott értékre. Ha egy változónak csak a neve van megadva, akkor az 1-es számmal inicializálódik. Ha egy változót egy "!" - a változó alaphelyzetbe áll.

BrowserMatchNoCase regex env-változó[=érték] ] ... [A]

A BrowserMatch-hez hasonlóan működik, lehetővé téve a kis- és nagybetűk közötti különbségeket az átadott User-Agent érték és a szűrőként használt reguláris kifejezés között.

SetEnvIf attribútum regex env-változó[=érték] ] ... [A]

A direktíva által végrehajtott művelet teljesen hasonló a BrowserMatch-hez, de a User-Agent helyett bármely más fejléc is használható: Remote_Host; Remote_Addr; távoli_felhasználó; Request_Method; Request_URI; Hivatkozó

SetEnvIfNoCase attribútum regex env-változó[=érték] ] ... [A]

A különbség a SetEnvIf-hez képest megegyezik a fenti BrowserMatch-től származó BrowserMatchNoCase-val.

mod_unique_id - egyedi UNIQUE_ID környezeti változót generál

A változó véletlenszerűen jön létre a szerver IP-címéből, a futó folyamatszámból, az időbélyegekből és a további belső számlálókból.

A változót összetett dokumentumokban kell használni, amikor nem lehet más módszerekkel követni ugyanazt a kérést.

mod_mime – a fájl mime típusának meghatározására szolgál, amikor átadja azt a kliensnek

AddCharset karakterkészlet kiterjesztés...

A megadott fájlkiterjesztéseknél utasítja az Apache-t, hogy adja át a megadott karakterkészletet, amikor válaszol az ügyfélnek.

AddEncoding MIME-enc kiterjesztés...

A megadott fájlkiterjesztéseknél megmondja az Apache-nak, hogy a kívánt MIME-kódolás használatával vigye át a fájlt.

AddHandler kezelőnév kiterjesztés...

Megmondja az Apache-nak, hogy a megadott kiterjesztésű fájlokat át kell adni egy adott kezelőnek. A kezelő lehet belső (cgi-sript és mások) vagy külső, az Action direktíva által korábban leírtak szerint.

AddLanguage MIME-lang kiterjesztése...

Kapcsolatot hoz létre a fájlkiterjesztések és a válaszban átadott nyelvi kód között.

AddType MIME típusú kiterjesztés...

Kiegészíti a MIME-típusok táblát a fájlkiterjesztések új leképezésével és a kliensnek adott válasz MIME-kódjával.

DefaultLanguage MIME-lang

Beállítja, hogy a válasz nyelve mindig elküldésre kerüljön, ha más módon nem lehetséges.

ForceType MIME-típus

Választ kényszerít az adott MIME típussal abban a könyvtárban, amelyhez az adott direktíva kapcsolódik.

RemoveEncoding bővítmény...

Eltávolítja a MIME-kódolást a válaszból az adott kiterjesztésű fájloknál.

RemoveHandler bővítmény...

Megmondja az Apache-nak, hogy ne futtasson kezelőket a megadott kiterjesztésű fájlokhoz.

RemoveType kiterjesztés...

Visszaállítja az ügyfélnek adott válasz MIME-típusát az alapértelmezett MIME-típusra

SetHandler kezelő

Kényszeríti ennek a kezelőnek a hívását minden olyan fájlhoz, amelyhez ez az utasítás hozzá van rendelve.

TypesConfig fájlnév[A]

Megadja a MIME típusú keresési tábla helyét. Alapértelmezett - conf.mime.types

mod_mime_magic - egy modul, amely összetett szabályokat használ a válaszban elküldött fájl MIME típusának meghatározására

MimeMagicFile fájlnév

Aktiválja a modulműveletet a megadott fájl használatával a webszerver adott dokumentumterületén vagy az Apache számára elérhető összes dokumentumon.

mod_negotiation - a továbbított adattípusok egyeztetésének biztosítása a kliens és a szerver között

CacheNegotiatedDocs[A]

Lehetővé teszi a tárgyalható tartalmú dokumentumok gyorsítótárazását a közbenső proxyszervereken és az ügyfélszámítógépen.

LanguagePriority MIME-lang ... [A]

Meghatározza az ügyfélnek adott válaszban használt nyelvek prioritását, ha nem lehet pontosan meghatározni vagy megtalálni az ügyfél által kért dokumentum nyelvét.

mod_alias - lehetővé teszi a dokumentumok tetszőleges elrendezését a webszerver könyvtáraiban

Alias URL-útvonal fájlrendszer-útvonal

Megmondja az Apache-nak, hogy az adott URL "alatt" található dokumentumokat az adott hely "alatt" kell keresni fájlrendszer.

AliasMatch URL-regexp fájlrendszer-útvonal

Bonyolultabb szabályokat határoz meg az adatok fájlrendszerben történő kereséséhez az URL-ek reguláris kifejezéssel való összehasonlításának eredménye alapján.

Átirányítás URL-útvonal URL-je

Visszaadja a megadott válaszkódot (alapértelmezés szerint 302), és átirányítja az ügyfelet egy másik URL-címre, válaszul egy URL-útvonalra és az „alul” dokumentumokra vonatkozó kérésre. Az állapot megadható számmal vagy szimbolikusan: állandó (301), hőm (302), seeother (303), elment (410). 410-es válaszkód esetén a válasz URL-címét ki kell hagyni.

RedirectMatch URL-regexp URL

Az átirányításhoz hasonlóan egy adott reguláris kifejezést használ a pontos egyezés helyett az átadott URL összehasonlításához.

RedirectTemp URL-útvonal URL

Hasonló a 302-es válaszkóddal történő átirányításhoz.

RedirectPermanent URL-útvonal URL

Hasonló a 301-es válaszkóddal történő átirányításhoz.

ScriptAlias URL-útvonal fájlrendszer-útvonal

Úgy működik, mint az Alias, de automatikusan beállítja a cgi-kezelő kezelőt a célkönyvtárban lévő összes fájl futtatására.

ScriptMatch URL-regexp fájlrendszer-útvonal

Hasonló a ScriptAliashoz, az URL reguláris kifejezés-ellenőrzésével.

mod_rewrite - a dokumentumok helyének kezelése a szerveren

Az Apache direktívák leírásának rövid gyűjteményében nehéz leírni az összetett modul által megoldott feladatokat. Útmutató a cselekvéshez a legjobb az apache-kézikönyv „Module mod_rewrite URL Rewriting Engine” és „URL Rewriting Guide” speciális szakaszait használni. A modul használatának elsajátításának legegyszerűbb módja, ha átgondolja az adott feladatokat és azok megoldásait.

Egyetlen fő (szülő) folyamat felelős az utódfolyamatok létrehozásáért, amelyek viszont figyelik a kapcsolatokat és feldolgozzák az ügyfelek kéréseit. Az Apache mindig igyekszik néhány tétlen szerverfolyamatot készen tartani a bejövő kérések kezelésére. Így a klienseknek nem kell megvárniuk az új utódfolyamatok létrehozását a kérésük kiszolgálása előtt.

Általánosságban elmondható, hogy az Apache nagyon önálló, így a legtöbb webhelynek nem kell módosítania ezeket az irányelveket az alapértelmezett értékekről.

Azoknál a webhelyeknél, amelyeknek több mint 256 egyidejű kérést kell kiszolgálniuk, érdemes lehet növelni a MaxClients-számot, a korlátozott memóriával rendelkező kiszolgálókon tárolt webhelyek esetében pedig csökkentenie kell a MaxClients értékét, hogy megakadályozza, hogy a kiszolgálónak memóriát lemezre kelljen cserélnie. . lemez és vissza), ami súlyos lassulásokhoz vezet.

A modul kiválasztása az egyik legfontosabb lépés az Apache webszerver megfelelő biztonsága érdekében. Egy jó szabályt kell követnünk: a kevesebb több. A szükséges funkcionalitás és a jó védelem biztosításához a következő modulokat kell engedélyezni:

httpd_core – Apache mag, minden Apache telepítéshez szükséges.

mod_access – Az ügyfél IP-címe vagy gazdagépneve alapján vezérli a szerverkönyvtárak elérését.

mod_auth – A felhasználók szöveges fájlokkal történő hitelesítéséhez szükséges.

mod_dir – Indexfájlok kereséséhez szükséges: "index.html", "default.html" stb.

mod_log_config – Biztosítja a szervernek küldött kérések naplózását. mod_mime – Olyan direktívákat tartalmaz, amelyek megkönnyítik a különböző típusú MIME megszervezését a szerveren.

Az összes többi Apache modult le kell tiltani. Nyugodtan kikapcsolhatjuk őket, mert nem lesz rájuk szükségünk. A szükségtelen modulok letiltásával megakadályozzuk, hogy a támadó kihasználja a modulok egyikében talált biztonsági rést.

Azt is érdemes megjegyezni, hogy a két Apache modul (mod_autoindex és mod_info) a legveszélyesebb. Az első modul lehetővé teszi a könyvtár automatikus indexelését, és alapértelmezés szerint engedélyezve van. Ha látni szeretné, hogyan működik, írja be például a http://szerver_neve/icons/ címet, és ha ebben a könyvtárban nincsenek indexfájlok, akkor a teljes könyvtár tartalma megjelenik. A második modult, a mod_info-t soha nem szabad elérni az interneten keresztül, mert az az Apache webszerver teljes konfigurációját mutatja.

A következő kérdés a modulok összeállítása. Számomra úgy tűnik, hogy a statikus módszer jobb (a kódok futtatható fájlokba vannak beépítve), mint a dinamikus módszer (a kódokat a program indításakor gyűjtik össze). A statikus metódus kiválasztásával szükségtelenné válik egy újabb modul, a mod_so.

Önálló munkavégzés: Munka az adatbázis szerverrel MySQL adatok. Táblázatok készítése. Adatok beillesztése, lekérése és frissítése adatbázisba.

12. számú laboratóriumi munka. Az Apache webszerver telepítése és konfigurálása.

Önálló munkavégzés: Munka a MySQL adatbázis-kiszolgálóval.

A webszerver nagyon összetett szoftver amelyen működik különböző platformokonés különbözőben operációs rendszer. A helyes működés érdekében telepített rendszer konfigurálni kell.

Alapértelmezés szerint az Apache beállításai a " fájlban találhatók httpd.conf"a könyvtárban" konf".

Különös figyelmet kell fordítani az Apache és PHP konfigurációs fájlok fájlútvonalaira. Gyakran meg kell adnia a különböző könyvtárak és fájlok elérési útját. A UNIX és a Windows operációs rendszerek különböző címtárelválasztókat használnak. UNIX rendszeren az előre tört perjel (/), Windowson pedig a fordított perjel (\) használatos. Néhány Apache és PHP direktíva mindkét típusú címtárelválasztóval működik. De mivel az Apache-t és a PHP-t eredetileg UNIX-ra fejlesztették ki, natív formátumuk használatával számos probléma elkerülhető. Ezért a konfigurációs fájlok elérési utak " httpd.conf"és" php.ini" ajánlott UNIX formátumú perjelen keresztül írni - "/".

Például:
ScriptAlias ​​"/php_dir/" "c:/php/" Fájl direktívák httpd.conf:

kikötő- megadja azt a TCP-portot, amelyet az Apache a kapcsolat létrehozásához használ. Alapértelmezés szerint a 80-as port van megadva. A portot az irányelvben is megadhatja Szerver név.
80-as port Az egyetlen oka a nem szabványos port beállításának, ha nincs engedélye a szabványos port használatára. Nem szabványos port, például 8080 használata esetén a portszámot meg kell adni a címben " http://localhost:8080/".

ServerAdmin- tartalmazza a webszerver rendszergazdájának megadott e-mail címét. Ez a cím jelenik meg a szerver működési hibái esetén.
ServerAdmin [e-mail védett] Szerver név- tartalmazza a kiszolgáló megadott számítógépnevét.
Kiszolgálónév localhost:80 ServerRoot- az Apache webszerver fájljait tartalmazó könyvtárra mutat.
ServerRoot "C:/web_szerver/apache" DocumentRoot- Megadja azt a könyvtárat, ahol a webhely fájljai találhatók.
DocumentRoot "C:/web_server/apache/htdocs" Tartály

Az ebben a tárolóban található direktívák hatóköre az irányelvben meghatározott könyvtárban található összes fájlra és alkönyvtárra kiterjed DocumentRoot.

Beállítások FollowSymLinks Indexeket tartalmaz
AllowOverride All
Irányelv override engedélyezéseértékre állítva ÖSSZES, lehetővé teszi a fő konfigurációs fájl értékének felülbírálását " httpd.conf"fájlokban" .htaccess".

Irányelv Beállítások FollowSymLinks lehetővé teszi az Apache számára a szimbolikus hivatkozások követését.

Irányelv Opciók Tartalmazza lehetővé teszi az SSI (Server Side Includes) direktívák megvalósítását a webhelyek oldalainak kódjában.

Irányelv Opciós indexek meghatározza, hogy a könyvtár tartalmát adja vissza, ha nincs indexfájl.

DirectoryIndex- tartalmazza az indexfájlok meghatározott listáját, amelyeket meg kell jeleníteni, ha fájlnév megadása nélkül éri el a könyvtárat.
DirectoryIndex index.html index.htm index.php irányelv ScriptAlias könyvtár alias létrehozására használt " /cgi-bin/", amely programokat és CGI-szkripteket tartalmaz.
ScriptAlias ​​​​/cgi-bin/ "C:/web_server/apache/cgi-bin/" Ezután be kell állítania az engedélyeket és a korlátozásokat a könyvtárban cgi-bin.

AllowOverride Nincs
Opciók ExecCGI
Parancs engedélyezni, megtagadni
Engedélyezze mindenkit
Ez a művelet annak biztosításához szükséges, hogy a címtárbeállítások ne változzanak, mivel ez biztonsági problémákat okozhat.

Irányelv AllowOverride Nincs azt mondja, hogy ennek a könyvtárnak a beállításai nem írhatók felül fájlokkal " .htaccess".

Irányelv Opciók ExecCGI lehetővé teszi a CGI szkriptek végrehajtását.

irányelveket parancs engedélyezi, tagadniés Engedélyezze mindenkit hozzáférést engedélyez a címtárhoz.

AddHandler- arra kényszeríti az Apache-t, hogy fontolja meg a kiterjesztésű fájlokat " alkalmazás"és" denevér", mint a CGI-szkriptek.
AddHandler cgi-script .bat .exe DefaultType beállítja azon fájlok fejlécét, amelyek típusa nem határozható meg a kiterjesztéssel. Ebben az esetben minden ismeretlen fájlok normál szövegfájlokként kezelik. Ha az összes ismeretlen fájlkiterjesztést HTML-ként szeretné kezelni, módosítsa a direktívát az alábbiak szerint:
DefaultType text/html AddDefaultCharset- beállítja az alapértelmezett kódolást, ha a kódolás nincs megadva a HTML dokumentum fejlécében.
AddDefaultCharset windows-1251

Állítsa be a munkához szükséges minimális attribútumokat, ehhez megnyitjuk a fájlt szerkesztésre /etc/httpd/conf/httpd.conf

Az Apache a három rendelkezésre álló többprocesszoros modul (mpm) egyikével futhat:

  1. előfork- kérésenként egy folyamat, a leggyakrabban használt modul;
  2. munkás- több folyamat, mindegyikhez több szál;
  3. esemény- a szabványos dolgozói többprocesszoros modul új kísérleti változata.

A modulokkal kapcsolatos információk megtekintéséhez futtassa:

# httpd -V | grep "Szerver MPM"

Konfigurációs példa Apache 2.4-hez


ServerLimit 256
Indítsa el a szervereket 20
Minimális tartalék szerverek 20
Max tartalék szerverek 20
MaxRequestWorkers 256
MaxConnectionsPer Child 4000

Állítsa be a MaxRequestWorkers értéket a ServerLimit értékkel megegyező értékre.

Konfigurációs példa Apache 2-hez

Szakaszban [többprocesszoros modul]> pl. állítsa be a következő értékeket:

Indítsa el a szervereket 5
MinSpareServers 10
MaxSpareServers 10
MaxClients 30
ServerLimit 30

StartServers— az indítandó folyamatok száma, így számítva (Teljes memória - Memória szerverhez, MySQL, Memcache stb.) / folyamat mérete. Például 64 Gb - 32 Gb / 0,256 Gb = maximum 125 folyamat.

MinSpareServers- az üresjárati folyamatok minimális száma.

MaxSpareServersmaximális összeget tétlen folyamatok.

MaxClients- folyamatkorlát.

ServerLimit- ugyanarra az értékre állítva, mint a MaxClients.

Óvatosan kell megközelíteni a MaxClients számítását, mert alacsony értékre állítása növelheti a webszerver szolgáltatásmegtagadásainak számát ügyfélkérelemenként. Beállítás is nagy jelentőségű cseréhez és a webszerver válaszidejének jelentős növekedéséhez vezethet.

A vtb-kiszolgáló egy- és kétszintű konfigurációjának használatakor a korlátok eltérőek. Azáltal, hogy a generált oldalakat egy könnyebb webszervernek (például nginx) adjuk, a korlátok csökkenthetők. A konkrét értékeket minden webszerverhez külön-külön számítják ki.

Életben tartani

Amikor egy oldalt kér egy webszervertől, a böngésző számos kérést küld a CSS stílusok, képek stb. betöltésére. A KeepAlive használatával egyetlen kapcsolaton belül kérhet egy oldalt és a hozzá tartozó fájlokat.

  1. Kapcsolja be a KeepAlive-t, ehhez a vonal Keep Alive Off Cseréld ki Tartsa életben tovább.
  2. MaxKeepAliveRequests 100-ra állítva.
  3. KeepAliveTimeout leggyakrabban 2 és 10 között van beállítva. Javasoljuk, hogy 5 másodpercet állítson be.

A Linux alapok sorozatunkban korábban bemutattuk az Apache webszerverrel való munka alapjait. Ez a világ legszélesebb körben használt webszervere az interneten (2015 júliusában az Apache 38%-át, az IIS 26%-át és az Nginx 15%-át tette ki). Ezért minél többet tud róla, és megérti, hogyan működik, annál nagyobb sikert érhet el a feltörése során.

Ma az Apache szerver beállításának alapjait ismertetjük. Ahogy korábban írtuk, szinte minden Linux vagy Unix alkalmazás konfigurációs fájlokon keresztül konfigurálható és konfigurálható, amelyek egyszerű szövegesek. Ez alól az Apache sem kivétel. Ezért ebben a cikkben az apache2.conf konfigurációs fájlra fogunk összpontosítani, amely az /etc/apache2 könyvtárban található.

1. lépés: Indítsa el az Apache2-t

Kezdjük az Apache2 elindításával. Ezt a Kali környezet grafikus héján keresztül fogjuk megtenni, az Alkalmazások -> menüpont alatt Kali Linux-> Rendszerszolgáltatások -> HTTP -> Az apache2 indítása az alábbi képernyőképen látható módon.

Vagy fuss át rajta parancs sor a következő parancs beírásával a terminálba

Kali > service apache2 start

Ezzel elindul az Apache2 démon, és mostantól a webszervernek kell kiszolgálnia a weben található tartalmainkat.

2. lépés: Ellenőrizze a szerver állapotát

Annak ellenőrzéséhez, hogy az Apache szerverünk fut-e, menjünk a localhost vagy a 127.0.0.1 oldalra a böngészőben. Ha az alábbi képernyőképen látható oldalt látja, az azt jelenti, hogy a szerver jól működik!

3. lépés: Nyissa meg a konfigurációs fájlt

Az Apache beállításához át kell lépnünk az /etc/apache2 könyvtárba.

Kali > cd /etc/apache2

Mutassuk meg az ebben a könyvtárban található összes fájl listáját:

Kali > ls -l

Amint láthatja, ebben a könyvtárban számos fájl és alkönyvtár található. Egyelőre csak az apache2.conf fájl érdekel minket, de vegye figyelembe, hogy van egy ports.conf fájlunk és egy sites_available mappánk, amelyekre később szükségünk lesz, valamint néhány más konfigurációs fájlt és mappát.

Az apache2.conf fájlt bármelyikben megnyithatjuk szöveg szerkesztő, de itt a Leafpadot fogjuk használni. A fájl megnyitható egyszerűen a konzolon:

Kali > levéltábla /etc/apache2/apache2.conf

Amint látja, ez a parancs megnyílik szöveges fájl az Apache webszerverünk konfigurációjával kapcsolatos összes információval. A szerver beállításához most megpróbáljuk végigvezetni a fájl összes kulcsfontosságú pontján.

4. lépés ServerRoot

Görgessünk lefelé, kihagyva az összes megjegyzést, és keressük meg a 70-es sort, ahol a globális beállítások szakasz kezdődik. Itt látjuk a ServerRoot beállításait. Ez a könyvtárfa teteje, ahol az Apache-kiszolgáló az összes kiszolgálóval kapcsolatos fájlt tárolja. A 84-es sor határozza meg a ServerRoot-ot. Egyszerűen törölhetjük ezt a sort, ha az /etc/apache2-t kiszolgálógyökérként szeretnénk beállítani. Javasoljuk, hogy tegye meg.

5. lépés: Időtúllépés

A következő részben olyan változókkal találkozunk, amelyek meghatározzák a paraméterek értékeit: Timeout, KeepAlive, MaxKeepAliveRequests és KeepAliveTimeout.

  • időtúllépés: Ez az az idő, amelyen belül a szervernek teljesítenie kell a felhasználó kérését. Az alapértelmezett értéke 300, ami azt jelenti, hogy a szervernek minden kérést 300 másodpercen belül, azaz 5 percen belül kell feldolgoznia. Ez határozottan túl hosszú, és 30 másodpercre állítható.
  • Életben tartani: Ez azt jelenti, hogy a szerver életben marad (feltartja a kapcsolatot) több kérés esetén ugyanattól az ügyféltől. Az alapértelmezett érték "Be" (engedélyezve). Ez azt jelenti, hogy az ügyfeleknek nem kell új kapcsolatot létrehozniuk a szerverünkhöz intézett minden kérés esetén. Ez a megközelítés megtakarítja a szerver erőforrásait.
  • MaxKeepAliveRequests: Ez az érték határozza meg az ugyanazon ügyféllel létrehozott kapcsolattól érkező kérések közötti maximális másodpercek számát. Ha ezt az értéket 0-ra állítjuk, akkor az idő korlátlan.
  • KeepAliveTimeout: Ennyi idő telik el a kérések között annak megállapítására, hogy a kapcsolat még él-e (létrejött-e).

Javasoljuk, hogy hagyjon meg minden alapértelmezett értéket, kivéve az "Időtúllépés" paramétert. Minden helyzet más, és előfordulhat, hogy módosítania kell ezeket az alapértelmezett értékeket, hogy a kiszolgáló teljesítményét az adott környezethez igazítsa.

6. lépés Apache2 felhasználó és csoportok

Görgessünk lejjebb néhány sort az apache2.conf fájlban, amíg el nem érjük a #177. sort. Itt állíthatjuk be az Apache2 felhasználót és csoportokat. Figyeld meg a megjegyzést a 177. sorban. Azt mondja, hogy beállíthatjuk ezeket a változókat az envvars fájlban ( Környezeti változók). Ezt a kérdést a jövőbeli cikkekre hagyjuk, de most ne feledje, hogy a Felhasználó (felhasználó) és a Csoport (csoport) is olyan változók, amelyek értékei az /etc/apache2/envvars fájlból származnak.

És végül utolsó szakasz, amely nagy jelentőséggel bír az Apache biztonsága szempontjából, a 193-as sortól kezdődik. Ez a szakasz biztosítja, hogy a webes ügyfelek ne férhessenek hozzá a .htaccess és .htpasswd fájlokhoz.

7. lépés: Naplózás

A következő szakasz leírja, hogyan kezeli az Apache a naplókat (naplókat).

Az első alszakaszban a HostNameLookups paraméterre hivatkozunk. Ez a direktíva közli az Apache2-vel, hogy végezzen-e DNS-keresést, amikor naplózza a létrejött kapcsolatot. Az alapértelmezett "Off" értékkel az Apache2 sokkal jobban működik.

8. lépés Elérhető webhelyek

Most nézzük meg a site_available könyvtárat (elérhető oldalak), és ami a legfontosabb, azt a fájlt, ami alapértelmezés szerint benne van. Gyakran az alapértelmezett Virtual Hosts fájlnak nevezik. Nyissa meg ezt a fájlt úgy, hogy beírja a konzolba:

Kali > leafpad /etc/apache2/site_available/default

Amint látja, három kritikus terület van ebben a fájlban. Az első sor megadja, hogy a webszerver melyik porton figyel. Itt van definiálva, hogy a 80-as (*:80) port bármely interfészén figyel. A második sor határozza meg azt az e-mail címet, amelyre a szerverrel kapcsolatos problémák esetén értesítéseket kell küldeni. Alapértelmezés szerint van egy cím, ha igen rendszergazda, itt megadhatja e-mail címét. A harmadik elem lehet a legfontosabb - a DocumentRoot. Meghatározza, hogy hova kerüljön a virtuális gazdagép tartalma, az alapértelmezett a /var/www könyvtár. Javasoljuk, hogy hagyjon mindent a fejlesztők által meghatározott módon.

9. lépés Portok

Végül az apache2.conf fájlban még lejjebb mehetünk a 248-as sorig - "include port.conf". Ez az utasítás egyszerűen azt mondja az Apache-nak, hogy lépjen a port.conf fájlba, hogy megkeresse azokat a portokat, amelyeken figyelnie kell.

Az Apache a legnépszerűbb ingyenes webszerver. 2016-ban az összes internetes oldal 33%-a használja, ami körülbelül 304 milliárd webhely. Ezt a webszervert még 1995-ben fejlesztették ki a népszerű NCSA szerver helyettesítésére, és számos problémát kijavított. A pletykák szerint a neve foltokból származik, amióta kijavította az NCSA hibákat. Ez egy többplatformos program, amely támogatja a Windows, Linux és MacOS rendszereket, és elegendő rugalmasságot, testreszabást és funkcionalitást biztosít. A program moduláris felépítésű, amely lehetővé teszi a funkcionalitás szinte végtelenségig bővítését modulok segítségével.

Az Apache Linuxra néhány paranccsal telepíthető, de a program nagyon sok beállítást kínál, amelyek megváltoztathatók, valamint modulokat, amelyek engedélyezése után jobban működik. Ez a cikk az Apache telepítésével és konfigurálásával foglalkozik, fő rendszerként az Ubuntut fogjuk használni, de ezeket a lépéseket bármely más disztribúcióban megismételheti. Nemcsak magát a program telepítését veszik figyelembe, hanem a konfigurálás módjait, az apache virtuális gazdagépek konfigurálását, valamint a leghasznosabb modulokat is.

A Ebben a pillanatban, a legtöbb egy új verzió program 2.4, ezért az apache 2.4 konfigurációját veszi figyelembe. Mint mondtam, Linux alatt a program csak néhány paranccsal települ. Az Ubuntu telepítéséhez először frissítse a rendszert a legújabb verzióra:

sudo apt frissítés
$ sudo apt frissítés

Ezután telepítse az apache2-t:

sudo apt install apache2

Más disztribúciókban a programcsomagot ennek vagy httpd-nek hívják, és nem okoz nehézséget a telepítés.

A telepítés befejezése után hozzá kell adnia a webszervert az indításhoz, hogy ne induljon el manuálisan a számítógép bekapcsolása után:

sudo systemctl enable apache2

Apache beállítás

Elmúltak azok az idők, amikor az Apache konfigurációját egyetlen fájlban tárolták. De helyes, ha minden a könyvtáraiban van elosztva, könnyebb navigálni a konfigurációs fájlokban.

Minden beállítás az /etc/apache/ mappában található:

  • Fájl /etc/apache2/apache2.conf felelős az alapbeállításokért
  • /etc/apache2/conf-available/* - további beállítások web szerver
  • /etc/apache2/mods-available/*- modul beállítások
  • /etc/apache2/sites-available/*- virtuális gazdagép beállításai
  • /etc/apache2/ports.conf- portok, amelyeken az apache fut
  • /etc/apache2/envvars

Amint láthatja, két mappa van a conf-hoz, a modokhoz és a webhelyhez. Ezek elérhetők és engedélyezve vannak. Ha egy modul vagy gazdagép engedélyezett, szimbolikus hivatkozás jön létre az elérhető mappából az engedélyezési mappába. Ezért jobb, ha a beállításokat az elérhető mappákban végzi el. Általánosságban elmondható, hogy ezek nélkül a mappák nélkül is meg lehetne tenni mindent, és a régi módon egy fájlba rakni, és minden működne, de most senki sem csinálja.

Először nézzük meg a fő konfigurációs fájlt:

vi /eta/apache2/apache2.conf

időtúllépés- jelzi, hogy a szerver mennyi ideig próbálja folytatni a megszakadt adatátvitelt vagy -vételt. 160 másodperc elég lesz.

Tartsa életben tovább- nagyon hasznos paraméter, lehetővé teszi több fájl átvitelét, egy kapcsolathoz például nem csak a html oldal, hanem képeket és css fájlokat is.

MaxKeepAliveRequests 100- kapcsolatonként a kérések maximális száma, minél több, annál jobb.

KeepAliveTimeout 5- kapcsolati időtúllépés, általában 5-10 másodperc elegendő az oldal betöltéséhez, így nem kell többet beállítani, de nem kell lekapcsolni az összes adat betöltése előtt.

felhasználói csoport- felhasználó és csoport, amelynek nevében a program fut.

HostnameLookups- ip címek helyett naplókba írja domain nevek, a munka felgyorsítása érdekében jobb letiltani.

LogLevel- hibanaplózási szint. Alapértelmezés szerint a figyelmeztetés használatos, de a naplók lassításához csak kapcsolja be a hibát

Tartalmazza- minden include direktíva felelős a fent tárgyalt konfigurációs fájlok felvételéért.

A könyvtárdirektívák felelősek a fájlrendszer egy adott könyvtárához való hozzáférési jogok beállításáért. A szintaxis itt a következő:


Paraméter értéke

Íme a főbb elérhető lehetőségek:

override engedélyezése- megadja, hogy a .htaccess fájlokat olvassa-e ebből a könyvtárból, ezek ugyanazok a beállítási fájlok és ugyanaz a szintaxis. Mind – mindent engedélyez, Egyik sem – ne olvassa el ezeket a fájlokat.

DocumentRoot- beállítja, hogy melyik mappából kell átvennie a dokumentumokat, hogy megjelenítse a felhasználó számára

Lehetőségek- Meghatározza, hogy a webszerver mely funkciói legyenek engedélyezve ebben a mappában. Például All - mindent engedélyez, FollowSymLinks - szimbolikus hivatkozásokat követ, Indexek - megjeleníti a könyvtár tartalmát, ha nincs indexfájl.

Kötelező- beállítja, hogy mely felhasználók férhetnek hozzá ehhez a könyvtárhoz. Mindent meg kell tagadni - mindenkit kitiltani, mindenkinek megadni - mindenkinek megengedni. használhatja a user vagy a group direktívát az összes helyett, hogy kifejezetten megadjon egy felhasználót.

Rendelés- lehetővé teszi a címtárhoz való hozzáférés szabályozását. Két értékre van szükség: Engedélyezés, Megtagadás – engedélyezi mindenki számára, kivéve a megadottakat, vagy Deny,Allow – deny mindenki számára, kivéve a megadottakat..ru.

Itt ezeket a direktívákat nem használjuk, mivel elégedettek vagyunk az alapértelmezett értékekkel, de a .htaccess fájlokban nagyon hasznosak lehetnek.

Maradt az /etc/apache2/ports.conf fájl:

Csak egy direktívája van, a Listen, amely megmondja a programnak, hogy melyik porton dolgozzon.

Az utolsó fájl az /etc/apache2/envvars, amelyet valószínűleg nem fog használni, olyan változókat tartalmaz, amelyek más konfigurációs fájlokban is használhatók.

Apache szerver beállítása htaccess-en keresztül

A .htaccess fájlok lehetővé teszik az Ubuntu webkiszolgálójának konfigurálását úgy, hogy az egy adott könyvtárban működjön. Az ebben a fájlban megadott összes utasítás úgy kerül végrehajtásra, mintha címkébe lenne csomagolva ha a főfájlban voltak.

Fontos megjegyezni, hogy ahhoz, hogy a szerver utasításokat olvashasson a .htaccess fájlból, a mappa beállításai a fő fájlban vagy a virtuális gazdagép fájlban nem tartalmazhatnak AllowOverride Nincs hogy minden beállítás működjön, szüksége van rá AllowOverride All.

Ellenkező esetben az apache kiszolgáló bármely konfigurációja elvégezhető itt, a modulok engedélyezésétől a mappa hozzáférésének megváltoztatásáig. Mivel már figyelembe vettük az összes paramétert, egyszerűen csak adunk néhány példát:

Elutasítás, engedélyezés
Mindentől tagadni

Megtagadja mindenki hozzáférését ehhez a mappához, fontos, hogy jelentkezzen a konfigurációs mappákra. Leggyakrabban a .htaccess a mod_rewrite modullal működik, amely lehetővé teszi a kérések menet közbeni megváltoztatását:

Motor újraírása bekapcsolva
RewriteRule ^product/([^/\.]+)/?$ product.php?id=$1 [L]

De ez egy nagyon tág téma, és túlmutat e cikk keretein.

Apache modulok konfigurálása

Mint mondtam, az Apache egy moduláris program, funkcionalitása modulok segítségével bővíthető. Az összes elérhető modulbetöltő és modulkonfigurációs fájl az /etc/apache/mods-available mappában található. És az /etc/apache/mods-enable fájlban engedélyezettek.

De nem kell elemeznie ezeknek a mappáknak a tartalmát. Az Apache 2.4 modulok hozzáadásával történő beállítása speciális parancsokkal történik. Az összes futó modult a következő paranccsal tekintheti meg:

A modult a következő paranccsal engedélyezheti:

sudo a2enmod modul_neve

És tiltsa le:

sudo a2dismod modul_neve

A modulok engedélyezése vagy letiltása után újra kell indítania az apache-t:

sudo systemctl indítsa újra az apache2-t

E parancsok egyikének végrehajtása során szimbolikus hivatkozás jön létre vagy törlődik a modulfájlhoz a kiterjesztés betöltésével a mods-available könyvtárban. Ennek a fájlnak a tartalma látható, csak egy sor van benne. Például:

vi /etc/apache2/mods-available/deflate.load

Ez azt jelenti, hogy a modul egyszerűen aktiválható, ha hozzáadjuk ezt a sort az apache2.conf fájlhoz. De a félreértések elkerülése érdekében ezt szokás tenni.

A modul beállításai ugyanabban a mappában vannak, csak a betöltés helyett egy .conf kiterjesztésű fájlban. Lássuk például ugyanannak a modulnak a beállításait a deflációs tömörítéshez:

vi /etc/apache2/mods-available/deflate.conf

A conf-available mappában lévő fájlok ugyanazok a modulok, csak az apache-tól külön vannak telepítve, ezek lehetnek konfigurációs fájlok a php modul vagy bármilyen más programozási nyelv engedélyezéséhez. Itt minden pontosan ugyanúgy működik, csak a modulok engedélyezésére és letiltására vonatkozó parancsok kissé eltérnek:

a2enconf modul_neve

a2disconf modul neve

Mint láthatta, a modulok engedélyezése nagyon egyszerű. Engedélyezzünk néhány kötelező, de alapértelmezés szerint nem engedélyezett modult:

A sudo a2enmod lejár
$ sudo a2enmod fejlécek
$ sudo a2enmod újraírás
$ sudo a2enmod ssl

A lejárati és fejlécmodulok csökkentik a szerverterhelést. Nem módosított fejlécet adnak vissza, ha a dokumentum nem változott az utolsó kérés óta. A lejárati modul lehetővé teszi, hogy beállítsa azt az időtartamot, ameddig a böngésző gyorsítótárazhatja a fogadott dokumentumot. A Rewrite lehetővé teszi a kért címek menet közbeni megváltoztatását, nagyon hasznos CNC-hivatkozások létrehozásakor stb. Az utolsó pedig az SSL-titkosítás támogatásának engedélyezésére szolgál. A beállítások elvégzése után ne felejtse el újraindítani az apache2-t.

Apache virtuális gazdagépek beállítása

Nem lenne túl kényelmes, ha egyetlen fizikai gépen csak egy webhelyet lehetne tárolni. Az Apache több száz webhelyet tud támogatni egyetlen gépen, és mindegyikhez a megfelelő tartalmat szolgálja ki. Ehhez virtuális gazdagépeket használnak. A szerver meghatározza, hogy melyik tartományba érkezik a kérés, és megadja a szükséges tartalmat ennek a tartománynak a mappájából.

Az Apache hosts beállításai az /etc/apache2/hosts-available/ mappában találhatók. Új gazdagép létrehozásához elegendő egy tetszőleges nevű fájlt létrehozni (jobban befejezni a gazdagép nevével), és kitölteni a szükséges adatokkal. Ezeket a paramétereket csomagolja egy direktívába virtualhost. Az itt tárgyalt paramétereken kívül a következőket kell használni:

  • Szerver név- elsődleges domain név
  • ServerAlias- további név, amellyel az oldal elérhető lesz
  • ServerAdmin - Email adminisztrátor
  • DocumentRoot- mappa a domain dokumentumaival

Például:

vi /etc/apache2/sites-available/test.site.conf