Mire is lehet használni egy web proxy -t?
- Tud cache -elni. Na, ez az amire én nem szoktam használni. Ugyan vannak nyilvánvaló előnyei a dolognak, de egyrészt eléggé erőforrásigényes, másrészt néha problémás. Elég jól ki kéne találni, hogy mit érdemes cache -be rakni (túl nagy és dinamikus dolgokat általában nem).
- Ad egyfajta biztonságot, mivel elrejti azt ami mögötte van.
- A kért tartalom függvényében más-más szerverekhez továbbithatja a kérést. Erre jó példa a statikus dianamikus tartalom szétválasztása. Itt a statikus tartalmat külön erre a célra kihegyezett gyors webszerverrel szolgáljuk ki, mig a dinamikust pedig egy másikkal. Ez a fő ok amiért én proxy -t használok.
- Akár load ballance -t is lehetne csinálni vele.
Amit web proxy -nak szoktak használni az tulajdonképpen Reverse Proxy.
Többféle megvalósítás létezhet, én most itt 4 általam már kipróbált müködő példát említek:
- A proxy megvalósitható Apache segítségével. Itt célszerű 2.x -es Apache -ot választani, mivel annak mod_proxy modulja jobb. Mögötte a dinamikus tartalmat (PHP) 1.x -es Apache szolgálja ki, míg a statikus tartalmat egy thttpd. A thttpd nem a legismertebb (és már nem is fejlesztik), de tulajdonságai alapján (kicsi, gyors, jól konfigurálható), teljesen megfelelő.
- Az előbbi példán lehet olyat csavarni, hogy ha a proxy már úgyis 1 Apache, akkor akár ki is szolgálhatja a dinamikus kéréseket, és ilyenkor csak a statikus dolgokat kell átirányitani egy thttpd -nek.
- SSL -t igénylő megvalósításánál (bár nem ezért, mert természetesen az Apache is tud SSL -t), használtam proxy -nak a Pound -ot. Mivel ez valóban csak 1 proxy, ezért kell mögé statikus tartalom szerver (thttpd) és dinamikus tartalom szerver (Apache) is.
- Végezetül a legújabb, és általam legjobbnak tartott megoldásnál a proxy és statikus webszerver funkciókat egyben egy nginx látja el, és csak a dinamikus tartalmat továbbitja a mögötte lévő Apache -nak.
Hogy miért nginx? Szerintem erre a feladatra ő a legjobb. Statikus webszervernek még szóba kerülhetne a lighttpd, de az nginx abban is a legjobbak közt van.
Végezetül még talán megéri megemlíteni, hogy mire is jó ez az egész? Teljesítmény szempontjábol sokat hozhat a konyhára. 1 tipikus weboldal 1 dinamkus tartalombol és ahoz tartozó jóval több statikus tartalomból (js, css, képek) áll. Ha ezeket külön a célra szakosodott webszerverek szolgálják ki, akkor az gyorsabb lesz. Nem mellesleg, az nginx memóriaigénye lényegesen kevesebb az apache -énál.
Utolsó kommentek