Apache mint egy proxy szerver, http könyvtár linukstsentra

Apache httpd régen nyert hírnevet, mint a legnépszerűbb a világon a web-szerver. Azonban sokan nem is tudják, hogy ő tudja, hogy konkruentsiyu nemcsak az IIS, de Squid.

Vegyünk egy tipikus design egy kis szervezet: átjáró az Internet alatt futó Unix vagy Microsoft Windows kezelése, proxy szerver, web szerver intranet, mail szerver, stb Kiderült, hogy az elemek száma is némileg csökkent, összhangban az aranyszabály a mérnök, így fokozva a rendszer megbízhatóságát. Ma beszélünk az Apache delegáció a fő funkciója a caching proxy szerver (pl Squid), és még valami ennél. Az alap OS fogja használni a Linux, bár sok mindent, amit az alábbiakban tárgyaljuk lehet alkalmazni az általánosság elvesztése nélkül és más platformokon.

Egyetértek, Apache használni, mint egy proxy szerver egy kicsit kívül a doboz, azonban számos előnye van. Ez először is, a képesség, hogy dinamikusan tömöríteni küldött dokumentumokat az ügyfeleknek, hogy eredményezhet jelentős megtakarítást, ha az adatátvitelre használt bérelt összhangban MB fizetési bejövő forgalmat (például az irodákban a társaság két, hanem csak egy szerver). Ezen kívül csökkenti a szolgáltatások számát fut a rendszer, ami azt jelenti, hogy a potenciális támadók kevésbé lenne a cél a támadások, és a rendszergazda, viszont kisebb oldalak, amelyek megkövetelik szoros felügyelet és támogatás. Azonban, mint minden más a tökéletlen világban, Apache, mint egy proxy szerver van néhány hátránya, mint például: tartalmaz kísérleti vagy írásban a harmadik féltől származó beépülő modulok (ha szeretné, akkor nélkülük), és ismeretlen viselkedik, amikor a terhelés növekedésével ( elismerem, hogy minden működni fog csak finom, de egy speciális terheléses vizsgálat nem végzett). Melyik tál túlsúlyban - úgy dönt. Vezetett a személyes tapasztalat, tudom jól használatát javasoljuk a proxy szerver alapú Apache kis hálózatokban.

Miután foglalkozott elméleti kérdések lépni a technikai részleteket. Megvalósítása a megfogant szükségünk Apache verzió 2.0.53 vagy újabb (régebbi változat hibákat mod_cache, zavarja a normális működését a cache dokumentumok) engedélyezve mod_proxy, mod_cache és mod_deflate. Ellentétben speciális megoldások, mint a fent említett a tintahal, a proxy szerver alapú Apache lényegében egy moduláris felépítésű, minden elképzelhető, amelyek funkciói elvére épül, hogy a teljes alap + szolgáltatók. Látni fogjuk, többször során a bemutatót. Tehát folytassa az első szakasz:

Kezdve a Proxy

Ahhoz, hogy az Apache képes fogadni és kezelni proxy kéréseket, le kell töltenie a mod_proxy modul része a szállítási és jól dokumentált. A továbbiakban ebben a cikkben nem fogjuk előidézni a kézikönyv oldalakat, megállás csak a triviális pillanatokat. A mod_proxy, mint a legtöbb más cselekmények cikkben felsorolt ​​modulok általában nem felel meg az Apache alapértelmezett konfiguráció, így előfordulhat, hogy újra összeállítja a szerver a megfelelő paramétereket beállítani script. Mod_proxy támogatja a felelős opció «--enable-proxy», más paraméterek ugyanazok, hozok a szövegben után zárójelben a megfelelő modul neve.

Összhangban a fenti képlet mod_proxy képez alapot, amelyre a munka támogatási rendszer proxy kéréseket. Ezek végrehajtása, konkrétan a különböző protokollok készült különálló modulból áll: mod_proxy_http (--enable-proxy-http), mod_proxy_ftp (--enable-proxy-ftp) és mod_proxy_connect (--enable-proxy-connect). Az utolsó szükséges, hogy működjön együtt a HTTP CONNECT kérések különösen biztonságos SSL-kapcsolaton keresztül.

Apache tudja fogadni proxy kéréseket, akkor kifejezetten lehetővé teszik számukra az irányelv „ProxyRequests On”. Azonban, nem rohan csinálni, nem törődve a biztonság, a hálózati kapcsolatok! Fizető megabájt letöltött vállalkozó tinédzserek ProxyHunter'om a kezükben - nem a legkellemesebb időtöltés. Hozzáférés a szerver paramétereket szakaszban és különösen a következő lehet:

# Minden proxy kéréseket

Rendelési tagadja, hogy # első tilalmat, majd hagyjuk

Deny: All # Deny all

Hagyjuk származó 192.168.0.1/24 # hozzáférés engedélyezése a belső hálózaton

# Minden proxy kéréseket

Authname "Tresspassers" # «idegen„.

AuthFile / valamilyen / titkos / file # fájl nevét tartalmazó felhasználói adatai

Require valid-user # figyelmen kívül hagyása, aki szerepel a / egyes / titkos / file

Miután elvégezte a szükséges módosításokat a httpd.conf, ne felejtsd el újraindítani az Apache. Ezután nyissa meg a kedvenc böngésző és győződjön meg arról, hogy a biztonsági beállítások pontosan úgy, ahogy tervezték.

caching

Adat gyorsítótár Apache felszabadítással mod_cache modul (--enable-cache). Ő az, aki dönt arról, hogy megengedhető helyi fennmaradása egy tárgy. Közvetlenül az adatok írása média folytató modulált „szolgáltatók” az, amit elsősorban az érdekli, a mod_disk_cache (--enable-disk-cache), amely végrehajtja a cache tároló a merevlemezen.

Vegyük észre, hogy mind a két Apache 2.0 modul (mod_cache és mod_disk_cache) státuszban vannak a kísérleti. A helyzet ígéri, hogy változtatni az Apache 2.1, mely még olyan állapotban alfa.

Annak érdekében, hogy gyorsítótárat használja az irányelv „CacheEnable disk /”, ahol „disk” - ID szolgáltató modul. Hely a lemez cache és a kívánt mennyiség (kilobájt) definíció szerint az irányelv „CacheRoot <имя каталога>„És« Cachesize „Ez már nem lényeges a mod_cache és mod_disk_cache. Apache lépéseket annak biztosítására, hogy a bizalmas adatok soha nem kerülnek a szerver cache, azonban az extra biztonság még mindig nem fáj. Azt javasoljuk, hogy a könyvtár, amelyben tárolja a cache, megközelíthetetlen bárki más, mint az Apache.

# Chown apache: apache / path / to / cache

# Chmod 0700 / path / to / cache

Természetesen, ha az Apache rendszer meghajtásáról egy másik felhasználói nevet és egy könyvtárat tulajdonos és a csoport ennek megfelelően módosítani kell.

Annak érdekében, hogy a teljesítmény Lemezgyorsítótár hogy réteges felépítésű. Fészekrakó alkönyvtárak és maximális hossza nevüket és ellenőrzési irányelv CacheDirLevels CacheDirLength. Alapértelmezésben a következő értékeket használjuk őket: CacheDirLevels 2, 3 CacheDirLength

Sajnos Apache 2.0 nincs szabványos eszközökkel kezelni tartalom cache. Nem lehet törölni a régi adatok fokozatosan, vagy csinálni meghaladó egy bizonyos cache lemezkvótával. Néhány ilyen problémákat megoldani az Apache 2.1 egy speciális segédprogramot htcacheclean, ami törli a cache, ha szükséges. Nem tudom, hogy azt át az ág 2,0, azonban a helyett, akkor írj egy forgatókönyvet, hogy rendszeresen tisztítsa meg a könyvtárat (és a jó intézkedés, indítsa újra az Apache), függetlenül.

Ebben a szakaszban már elvégezte az összes szükséges munka termelni „azonos természetes aroma” a tintahal, vagy inkább, hogy egy részét a funkciót, amelyet egy tipikus kis irodai hálózat. Most megyünk egy kicsit tovább, és rájönnek, valami újat - átlátszó tömörítés web-oldalakat.

Miután a terhelés mod_deflate szűrő a „DEFLATE”, amely lehet telepíteni a szokásos módon, például a „SetOutputFilter DEFLATE” irányelvet. Útmutató a modul ajánlja vigyázz és disable adattömörítés böngészőkre jóllehet kinyilvánított alkalmassága (megjegyzés: Meg kell jegyezni, hogy a cut-off ügyfeleknek, amelyek nem támogatják az adattömörítés, mod_deflate termel maga nélkül rendszergazda beavatkozása) nem tudják biztosítani a megfelelő szintű támogatást (például Netscape Navigator 4.x megfelelően kezeli csak a tömörített adatokat, mint a text / html, és az ő verziója 4,06-4,08 nem is képes rá), de alkalmazása a proxy szerver, hogy van értelme csak abban az esetben, ha az ilyen „dinoszauruszok még használatban vannak a szervezetben. Többek között irányelvek támogatott mod_deflate, említést kell tenni DeflateCompressionLevel,

létrehozó adattömörítési arányt (szám 0-tól 9). Egy nagyobb értéket is ilyen méretű biztosít egy kisebb méretű a kapott fájlt, de növeli a terhelést a processzor. Egy átlagos rendszert úgy, hogy a legjobb választás 6. Nem tudja használni ezt az irányelvet, akkor lesz egy alapértelmezett értéket hozott az összeszerelés során Zlib könyvtári rendszer.

mod_filter

Úgy tűnik, hogy minden rendben van. Apache már képes kezelni a proxy kéréseket, tárolja a cache, és még tömöríteni küldés előtt. Azonban, miután egy rövid (általában - nagyon rövid) ideig talált furcsa leletek. Archives valamilyen okból csomagolják kétszer mi ijeszt képzetlen felhasználók. És akkor ott vannak a két ősrégi magyar kérdést: „Ki a hibás?” És „Mi a teendő?”

val / mod_filter.zip. A telepítéséhez bontsa ki a fájlt egy ideiglenes könyvtárat a szerveren, és adja a parancsot: apxs -c -i -a mod_filter.c.

Az alapötlet az, hogy cserélje mod_filter hagyományos szűrő úgynevezett „okos” (smart filter). „Smart” szűrő - egy absztrakt konstrukció, amely kiváltó feltételeket, és egy sor úgynevezett szolgáltatók (az a szó!), Ami viszont a hagyományos szűrők. Hosszú távon ez a megközelítés csökkenti a duplikált kód előforduló szinte minden egység és választ ad a kérdésre: „Nem kellene kezelni ezt az adatot rész” Azonban most már érdekel a tisztán gyakorlati szempontokat.

Feltételei égetés „okos” szűrő használható különféle információkat: fejléc mezők közvetlen kérés (req) és válasz (ill) értékek Apache belső változókat, amelyek segítségével telepíthető mod_setenvif (env), rakodók nevek (kezelő), és pontosan ugyanolyan típusú átviteli adatok (Content-type).

Irányelv „FilterDeclare létrehozásához használt” intelligens „szűrő <имя фильтра>”. Csatlakozó az egyes szolgáltatók kezelni irányelv „FilterProvider <имя фильтра> <имя провайдера> <условие>”. Itt a neve utal a szolgáltató neve a „szokásos” szűrő például DEFLATE. Miután beállította az „okos” szűrőt, akkor adja hozzá a „lánc» FilterChain csapat. Ha a beérkező query string kapcsolatokat egymás beolvasott mindaddig, amíg a szűrő található, mely kiváltó feltétele az adott lekérdezés lenne igaz. Alapértelmezésben egy új, „intelligens szűrő” zajlik a végén a lánc, de ez a viselkedés elnyomható speciális előtagokat FilterChain irányelv. A részleteket lásd a dokumentációt.

Most a módja annak, hogy megoldja a problémát világossá válik. Meg kell adni az „okos” szűrő „kompresszor” (persze, akkor használjon egy másik neve), amely feldolgozza az adatokat, hogy milyen típusú „text / *”. Tény, MIME-típusok közötti tartományban kell tömöríteni, lehet szélesebb. Például, azt használja az alábbi szerkezetű:

FilterProvider kompresszor DEFLATE ill = Content-type $ text /

FilterProvider kompresszor DEFLATE ill = Content-type $ application / xhtml

FilterProvider kompresszor DEFLATE ill = Content-type $ application / xml

következtetés

1. doboz Egy példa configure hívás támogatást nyújt minden szükséges modul

--enable-proxy --enable-proxy-http --enable-proxy-ftp --enable-proxy-connect \

2. rovat A töredék httpd.conf implementáló cikkében ismertetett rendszer