Úvod
Rozšírenia tretích strán sú mimoriadne užitočnými doplnkami. Vďaka nim je konfigurácia a práca so serverom, ako je napríklad Apache HTTP, oveľa jednoduchšia a pohodlnejšia. V prípade potreby môžete dokonca použiť niektoré z týchto modulov v Apache na spustenie reverzného proxy servera. Môžete buď odstrániť vrstvu z nastavenia servera, alebo môžete použiť modul na presmerovanie pripojení.
V tejto príručke budeme diskutovať o Apache a rôznych moduloch spojených s touto serverovou platformou, ako je napríklad mod_proxy. Uvidíme tiež, ako ho môžete použiť ako reverzný proxy na presmerovanie pripojení na vaše backendové aplikačné servery.
Čo je Apache?
Apache je HTTP server ktorý sa veľmi bežne používa na účely súvisiace s webom. Môžete ho však použiť z rôznych dôvodov a na viacerých platformách. Môžete nainštalovať svoj webový server Apache na Ubuntu podľa nášho podrobného návodu. Okrem toho postupujte podľa tohto návodu, aby ste sa dozvedeli, ako zabezpečiť svoj server Apache pomocou Let’s Encrypt. Môžete si tiež pozrieť ako nastaviť virtuálnych hostiteľov Apache na Ubuntu 20.04.
Funkcie a implementáciu Apache môžete ďalej preskúmať pomocou externých modulov. Ide o moduly tretích strán, ktoré môžete použiť na vykonávanie rôznych úloh týkajúcich sa pripojení a konfigurácií. Môžete napríklad použiť modul mod_rewrite na prepisovanie URL adries na základe pravidiel. Ďalším z týchto modulov je mod_proxy. Tento modul je v komunite do značnej miery nevyužívaný. Predovšetkým preto, že veľa ľudí si neuvedomuje rozsah jeho funkcií a aplikácií. Mod_proxy, ako napovedá názov, vám môže pomôcť vytvoriť bránu alebo proxy pre backendové servery.
Poďme preskúmať mod_proxy podrobne a to, ako ho môžete použiť ako reverzný proxy.
Mod_proxy: Použitie Apache ako reverzného proxy
Ako už pravdepodobne viete, mod_proxy je modul. Je to modul v Apache, ktorý môžete použiť na vytváranie a presmerovanie rôznych pripojení. Môžete ho tiež aktivovať a konfigurovať ako akýkoľvek iný modul vo vašom systéme. Jedinečnosť mod_proxy spočíva v tom, že to nie je len jeden modul. V skutočnosti pozostáva z kolekcie rôznych modulov, ktoré nájdete nižšie. Každý z nich má svoju vlastnú funkciu. Týmto spôsobom vám mod_proxy poskytuje veľkú rozmanitosť funkcií.
Pozrite sa na nasledujúce moduly mod_proxy:
mod_proxy
Toto je hlavný proxy modul. V Apache môžete tento modul použiť na konfiguráciu a správu rôznych pripojení. Môže vám tiež pomôcť presmerovať pripojenia.
mod_proxy_http
Ako napovedá názov, tento modul sa zaoberá protokolmi HTTP a HTTPS. Tento modul môžete použiť na implementáciu funkcií proxy pre tieto protokoly.
mod_proxy_ftp
Mod_proxy_ftp funguje vtedy, keď pracujete s protokolom FTP.
mod_proxy_connect
Tento modul je užitočný, keď vykonávate SSL tunelovanie.
mod_proxy_ajp
Mod_proxy_ajp môžete použiť, keď pracujete s protokolom AJP.
mod_proxy_wstunnel
To je užitočné, keď pracujete s webovými socketmi ako WS a WSS.
mod_proxy_balancer
Ak chcete získať prístup k funkciám vyvažovania záťaže (load balancing) a klastrovania, môžete použiť tento modul.
mod_cache
Modul mod_cache je podľa očakávania užitočný na účely ukladania do vyrovnávacej pamäte (caching).
mod_headers
Tento modul môžete použiť na správu hlavičiek, ktoré vytvárate pomocou protokolu HTTP.
mod_deflate
Tento modul sa používa na účely kompresie.
Ak sa chcete dozvedieť ešte viac podrobností o týchto moduloch, môžete navštíviť oficiálnu webovú stránku Apache. Oficiálna dokumentácia vám poskytne viac informácií o mod_proxy a samotnom Apache.
Ako nainštalovať Apache a mod_proxy?
Tu je niekoľko jednoduchých krokov na inštaláciu Apache a mod_proxy vo vašom systéme:
- Príprava servera
V prvom rade sa musíte uistiť, že váš cloudový server je pripravený. Ak to chcete urobiť, musíte aktualizovať operačný systém a súvisiaci softvér na najnovšie verzie.
Na aktualizáciu aplikácií použite nasledujúce príkazy:
|
1 2 3 |
apt install aptitude aptitude update aptitude -y upgrade |
- Inštalácia základného balíka
Keď už máte svoj server pripravený, musíte ho vybaviť základnými nástrojmi. Na tento účel musíte nainštalovať balík build-essential. Tento balík pozostáva zo všetkých základných nástrojov, ktoré potrebujete na inštaláciu vecí zo zdrojového kódu. Môžete ho nainštalovať pomocou tohto príkazu:
|
1 |
aptitude install -y build-essential |
- Získajte moduly a závislosti
Na záver musíte nainštalovať moduly a závislosti. Môžete tak urobiť spustením nasledujúceho príkazu:
|
1 |
aptitude install -y apache2 apache2-bin libxml2-dev |
Aktivácia modulov: Ako nakonfigurovať Apache s proxy pripojeniami?
Predtým, ako sa vôbec dostanete ku konfigurácii Apache, musíte aktivovať svoje moduly. Tieto moduly vám pomôžu vykonať potrebné konfigurácie a vykonávať rôzne úlohy.
Na začiatok musíte skontrolovať, ktoré moduly už vo vašom systéme fungujú. Okrem toho sa musíte uistiť, že všetky moduly sú správne nainštalované a dajú sa povoliť. Spustením tohto príkazu sa zobrazia všetky dostupné moduly na vašom serveri Apache:
|
1 |
a2enmod |

Ako vidíte, odpoveď vám zobrazí všetky dostupné moduly vo forme podrobného zoznamu. Prejdite si tento zoznam a určte, ktoré moduly chcete aktivovať. Aby ste o tom dali Apache vedieť, môžete použiť nasledujúci príkaz a namiesto príkladov zadať požadované moduly:
|
1 |
proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html lbmethod_byrequests |
Na druhej strane môžete aktivovať každý modul aj samostatne. Na to by ste použili nasledujúce príkazy:
|
1 2 3 4 5 6 7 8 9 10 |
a2enmod proxy a2enmod proxy_http a2enmod proxy_ajp a2enmod rewrite a2enmod deflate a2enmod headers a2enmod proxy_balancer a2enmod proxy_connect a2enmod proxy_html a2enmod lbmethod_byrequests |
Niektoré moduly budú na vašom serveri pravdepodobne aktivované predvolene. Možno sa pýtate, ako môžete potvrdiť, že sú povolené. Aby ste sa uistili, že požadovaný modul je aktívny, môžete sa ho pokúsiť aktivovať dvakrát. To zaručí, že modul bude povolený.
- Zmena predvolených nastavení konfigurácie
Najprv musíte zmeniť predvolené nastavenia konfigurácie. Ak to chcete urobiť, musíte získať prístup k predvolenému konfiguračnému súboru, ktorým je 000-default.conf. Tento súbor sa nachádza v priečinku /etc/apache2/sites-enabled. Musíme ho upraviť tak, aby získal funkciu proxy.
Začnete otvorením textového editora nano na úpravu predvoleného virtuálneho hostiteľa. Môžete to urobiť spustením tohto príkazu:
|
1 |
nano /etc/apache2/sites-enabled/000-default.conf |
Moduly mod_virtual host a mod_proxy budeme spoločne označovať ako proxy virtuálny hostiteľ. Teraz môžete implementovať nasledujúce nastavenia konfigurácie. Môžete vykonať potrebné zmeny, ktoré uznáte za vhodné pre váš systém a vaše požiadavky:
|
1 2 3 4 5 6 7 |
<VirtualHost *:*> ProxyPreserveHost On ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ ServerName localhost </VirtualHost> |
Uložiť a odísť môžete po stlačení Ctrl + X a potvrdení pomocou Y.
- Aktivácia funkcie vyrovnávania záťaže
Vyrovnávanie záťaže vám pomáha efektívne distribuovať pripojenia na vašom proxy. Je to veľmi užitočný nápad, keď namiesto jedného aplikačného servera na pozadí používate viacero. Funkcia vyrovnávania záťaže rozdelí pripojenie alebo „záťaž“.
Ak chcete povoliť túto funkciu, musíte zopakovať kroky uvedené vyššie v tejto príručke. Pri nastavovaní virtuálneho hostiteľa však musíte použiť nasledujúce nastavenia konfigurácie:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:*> <Proxy balancer://mycluster> # Definujte back-end servery: # Server 1 BalancerMember http://0.0.0.0:8080/ # Server 2 BalancerMember http://0.0.0.0:8081/ </Proxy> # Použite nastavenia VH podľa potreby # Avšak, nakonfigurujte argument ProxyPass na # použitie "mycluster" na vyvažovanie záťaže ProxyPass / balancer://mycluster </VirtualHost> |
- Aktivovať podporu reverzného proxy
Budete musieť zabezpečiť, aby virtuálny hostiteľ podporoval vaše reverzné proxy, ak pracujete s SSL pripojeniami a certifikátmi. Tento sekundárny virtuálny hostiteľ musí mať nasledujúce nastavenia. Budete musieť vykonať pokyny z predchádzajúcich krokov. Stačí len nahradiť možnosti konfigurácie tými, ktoré sú uvedené nižšie:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<VirtualHost *:443> SSLEngine On # Nastavte cestu k SSL certifikátu # Použitie: SSLCertificateFile /cesta/k/cert.pem SSLCertificateFile /etc/apache2/ssl/file.pem # Servery na proxy pripojenia, alebo; # Zoznam aplikačných serverov: # Použitie: # ProxyPass / http://[IP adresa]:[port]/ # ProxyPassReverse / http://[IP adresa]:[port]/ # Príklad: ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ # Alebo vyvažujte záťaž: # ProxyPass / balancer://balancer_cluster_name </VirtualHost> |
Pre fungovanie vyššie uvedenej konfigurácie budete musieť povoliť aj modul SSL:
|
1 |
sudo a2enmod ssl |
- Reštartovať Apache
Všetky konfigurácie sú dokončené. Nakoniec môžete reštartovať server Apache, aby sa zmeny prejavili. Apache môžete reštartovať spustením nasledujúceho príkazu:
|
1 |
service apache2 restart |
Záver
Voila! Práve ste úspešne nastavili bránu reverzného proxy vo vašom serveri Apache. Teraz bude Apache presmerovávať prichádzajúce pripojenia na vaše aplikačné servery v backende.
Skvelé na tom je, že proces konfigurácie vyžaduje len málo úsilia a je pomerne jednoduchý. Teraz, keď poznáte presné kroky, ako to dosiahnuť, by ste nemali mať žiadne problémy s nastavením reverzného proxy v Apache.
Príjemnú prácu s počítačom!

Komentáre
Zatiaľ žiadne komentáre. Buďte prvý.