Úvod
Rozšíření třetích stran jsou nesmírně užitečnými doplňky. Výrazně zjednodušují a usnadňují konfiguraci a práci se serverem, jako je Apache HTTP. V případě potřeby můžete dokonce některé z těchto modulů v Apache použít ke spuštění reverzního proxy serveru. Můžete buď odebrat vrstvu z nastavení serveru, nebo použít modul k přesměrování připojení.
V této příručce se budeme zabývat serverem Apache a různými moduly spojenými s touto serverovou platformou, jako je mod_proxy. Podíváme se také na to, jak jej můžete použít jako reverzní proxy k přesměrování připojení na vaše backendové aplikační servery.
Co je Apache?
Apache je HTTP server který se velmi běžně používá pro účely související s webem. Můžete jej však použít z různých důvodů a na několika platformách. Můžete nainstalovat webový server Apache na Ubuntu podle našeho podrobného návodu. Dále postupujte podle tohoto návodu, abyste se dozvěděli, jak zabezpečit server Apache pomocí Let’s Encrypt. Můžete se také podívat na jak nastavit virtuální hostitele Apache na Ubuntu 20.04.
Funkce a implementaci Apache můžete dále prozkoumat pomocí externích modulů. Jedná se o moduly třetích stran, které můžete použít k provádění různých úkolů týkajících se připojení a konfigurací. Můžete například použít modul mod_rewrite k přepisování URL na základě pravidel. Dalším z těchto modulů je mod_proxy. Tento modul je v komunitě značně nevyužívaný. Především proto, že mnoho lidí si neuvědomuje rozsah jeho funkcí a aplikací. Mod_proxy, jak napovídá název, vám může pomoci nastavit bránu nebo proxy pro backendové servery.
Pojďme prozkoumat mod_proxy podrobně a jak jej můžete použít jako reverzní proxy.
Mod_proxy: Použití Apache jako reverzního proxy
Jak už asi tušíte, mod_proxy je modul. Je to modul v Apache, který můžete použít k vytváření a přesměrování různých připojení. Můžete jej také aktivovat a nakonfigurovat jako jakýkoli jiný modul ve vašem systému. Jedinečné na mod_proxy je, že se nejedná o jediný modul. Ve skutečnosti se skládá z kolekce různých modulů, které najdete níže. Každý z nich má svou vlastní funkci. Tímto způsobem vám mod_proxy poskytuje velkou rozmanitost funkcí.
Podívejte se na následující moduly mod_proxy:
mod_proxy
Toto je hlavní proxy modul. V Apache můžete tento modul použít ke konfiguraci a správě různých připojení. Může vám také pomoci přesměrovat připojení.
mod_proxy_http
Jak název napovídá, tento modul se zabývá protokoly HTTP a HTTPS. Tento modul můžete použít k implementaci funkcí proxy pro tyto protokoly.
mod_proxy_ftp
Mod_proxy_ftp funguje, když pracujete s protokolem FTP.
mod_proxy_connect
Tento modul je užitečný, když provádíte SSL tunelování.
mod_proxy_ajp
Mod_proxy_ajp můžete použít, když pracujete s protokolem AJP.
mod_proxy_wstunnel
To je užitečné, když pracujete s webovými sockety jako WS a WSS.
mod_proxy_balancer
Pokud chcete získat přístup k funkcím vyvažování zátěže a clusteringu, můžete použít tento modul.
mod_cache
Modul mod_cache je podle očekávání užitečný pro účely ukládání do mezipaměti.
mod_headers
Tento modul můžete použít ke správě hlaviček, které vytváříte pomocí protokolu HTTP.
mod_deflate
Tento modul se používá pro účely komprese.
Pokud se chcete o těchto modulech dozvědět ještě více podrobností, můžete navštívit oficiální webové stránky Apache. Oficiální dokumentace vám poskytne více informací o mod_proxy a také o samotném Apache.
Jak nainstalovat Apache a mod_proxy?
Zde je několik snadných kroků k instalaci Apache a mod_proxy do vašeho systému:
- Příprava serveru
Nejprve se musíte ujistit, že je váš cloudový server připraven. Chcete-li to provést, musíte aktualizovat operační systém a související software na nejnovější verze.
K upgradu aplikací použijte následující příkazy:
|
1 2 3 |
apt install aptitude aptitude update aptitude -y upgrade |
- Instalace balíčku Essentials
Jakmile připravíte svůj server, musíte jej vybavit základními nástroji. Za tímto účelem je třeba nainstalovat balíček build-essential. Tento balíček se skládá ze všech základních nástrojů, které potřebujete k instalaci věcí ze zdrojového kódu. Můžete jej nainstalovat pomocí tohoto příkazu:
|
1 |
aptitude install -y build-essential |
- Získejte moduly a závislosti
Na závěr je třeba nainstalovat moduly a závislosti. Můžete tak učinit spuštěním následujícího příkazu:
|
1 |
aptitude install -y apache2 apache2-bin libxml2-dev |
Aktivace modulů: Jak nakonfigurovat Apache s proxy připojeními?
Ještě než se dostanete ke konfiguraci Apache, musíte aktivovat své moduly. Tyto moduly vám pomouhou provést potřebná nastavení a plnit různé úkoly.
Nejprve musíte zkontrolovat, které moduly již ve vašem systému fungují. Kromě toho se také musíte ujistit, že jsou všechny moduly správně nainstalovány a lze je povolit. Spuštěním tohoto příkazu se zobrazí všechny dostupné moduly na vašem serveru Apache:
|
1 |
a2enmod |

Jak vidíte, odpověď vám ukáže všechny dostupné moduly v podobě podrobného seznamu. Projděte si tento seznam a určete, které moduly chcete aktivovat. Chcete-li to Apache sdělit, můžete použít následující příkaz a místo příkladů zadat požadované moduly:
|
1 |
proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html lbmethod_byrequests |
Na druhou stranu můžete také aktivovat každý modul samostatně. K tomu byste použili následující pří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 |
Některé moduly budou na vašem serveru pravděpodobně aktivovány ve výchozím nastavení. Možná vás zajímá, jak si můžete ověřit, že jsou povoleny. Chcete-li se ujistit, že je požadovaný modul aktivní, můžete se jej pokusit aktivovat dvakrát. To zaručí, že je modul povolen.
- Změna výchozího nastavení konfigurace
Nejprve musíte změnit výchozí nastavení konfigurace. Chcete-li tak učinit, musíte přistoupit k výchozímu konfiguračnímu souboru, kterým je 000-default.conf. Tento soubor se nachází v adresáři /etc/apache2/sites-enabled. Musíme jej upravit tak, aby získal funkci proxy.
Začnete otevřením textového editoru nano pro úpravu výchozího virtuálního hostitele. Můžete to provést spuštěním tohoto příkazu:
|
1 |
nano /etc/apache2/sites-enabled/000-default.conf |
Moduly mod_virtual host a mod_proxy budeme společně označovat jako proxy virtuální hostitel. Nyní můžete implementovat následující nastavení konfigurace. Můžete provést potřebné změny, jak uznáte za vhodné pro váš systém a vaše požadavky:
|
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žit a odejít můžete stisknutím Ctrl + X a potvrzením pomocí Y.
- Aktivace funkce vyrovnávání zátěže
Vyrovnávání zátěže vám pomáhá efektivně distribuovat připojení na vaší proxy. To je velmi užitečné v případech, kdy místo jednoho backendového aplikačního serveru používáte více serverů. Funkce vyrovnávání zátěže rozdělí připojení neboli „zátěž“.
Chcete-li tuto funkci povolit, musíte zopakovat kroky uvedené dříve v této příručce. Při nastavování virtuálního hostitele však musíte použít následující nastavení konfigurace:
|
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žijte nastavení VH podle potřeby # Nicméně nakonfigurujte argument ProxyPass tak, # aby pro vyrovnávání zátěže používal "mycluster" ProxyPass / balancer://mycluster </VirtualHost> |
- Aktivace podpory reverzního proxy
Pokud pracujete s SSL připojeními a certifikáty, budete muset zajistit, aby virtuální hostitel podporoval váš reverzní proxy. Tento sekundární virtuální hostitel musí mít následující nastavení. Budete muset provést pokyny z předchozích kroků. Stačí pouze nahradit možnosti konfigurace těmi, které jsou uvedeny níže:
|
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žití: SSLCertificateFile /cesta/k/cert.pem SSLCertificateFile /etc/apache2/ssl/file.pem # Servery pro proxy připojení, nebo; # Seznam aplikačních serverů: # Použití: # ProxyPass / http://[IP adresa]:[port]/ # ProxyPassReverse / http://[IP adresa]:[port]/ # Příklad: ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ # Nebo vyrovnávejte zátěž: # ProxyPass / balancer://nazev_balancer_clusteru </VirtualHost> |
Pro fungování výše uvedené konfigurace budete také muset povolit modul SSL:
|
1 |
sudo a2enmod ssl |
- Restartujte Apache
Všechny konfigurace jsou hotové. Nakonec můžete restartovat server Apache, aby se změny projevily. Apache můžete restartovat spuštěním následujícího příkazu:
|
1 |
service apache2 restart |
Závěr
A je to! Právě jste úspěšně nastavili bránu reverzního proxy ve vašem serveru Apache. Nyní bude Apache přesměrovávat příchozí připojení na vaše aplikační servery v backendu.
Skvělé na tom je, že proces konfigurace vyžaduje minimální úsilí a je poměrně přímočarý. Nyní, když znáte přesné kroky, jak toho dosáhnout, byste neměli mít s nastavením reverzního proxy v Apache vůbec žádné problémy.
Příjemnou práci!

Komentáře
Zatím žádné komentáře. Buďte první.