Inleiding
Extensies van derden zijn uiterst nuttige toevoegingen. Deze maken uw ervaring met het configureren van en werken met een server, zoals Apache HTTP, veel eenvoudiger en gemakkelijker. In tijden van nood kunt u zelfs enkele van deze modules in Apache gebruiken om een reverse proxy uit te voeren. U kunt een laag uit uw serverconfiguratie verwijderen of u kunt een module gebruiken om de verbindingen om te leiden.
In deze handleiding bespreken we Apache en de verschillende modules die bij het serverplatform horen, zoals mod_proxy. We zullen ook zien hoe u dit kunt gebruiken als een reverse proxy om verbindingen om te leiden naar uw backend-applicatieservers.
Wat is Apache?
Apache is een HTTP-server die zeer vaak wordt gebruikt voor webgerelateerde doeleinden. Maar u kunt het om verschillende redenen en op meerdere platforms gebruiken. U kunt uw Apache-webserver op Ubuntu installeren door onze stapsgewijze handleiding te volgen. Volg daarnaast deze handleiding om te leren hoe u uw Apache-server kunt beveiligen met Let’s Encrypt. U kunt ook bekijken hoe u virtuele Apache-hosts instelt op Ubuntu 20.04.
U kunt de functies en implementatie van Apache verder verkennen met behulp van externe modules. Dit zijn modules van derden die u kunt gebruiken om verschillende taken uit te voeren met betrekking tot verbindingen en configuraties. U kunt bijvoorbeeld de module mod_rewrite gebruiken om op regels gebaseerde URL-herschrijving uit te voeren. Een andere module is mod_proxy. Deze laatste module wordt in de gemeenschap grotendeels onderbenut. Vooral omdat veel mensen niet op de hoogte zijn van de omvang van de functionaliteit en toepassingen ervan. Mod_proxy kan, zoals de naam al doet vermoeden, u helpen een gateway of proxy in te stellen voor backend-servers.
Laten we de mod_proxy in detail verkennen en hoe u deze kunt gebruiken als een reverse proxy.
Mod_proxy: Apache gebruiken als een reverse proxy
Zoals u waarschijnlijk wel kunt raden, is mod_proxy een module. Het is een module in Apache die u kunt gebruiken om verschillende verbindingen tot stand te brengen en om te leiden. U kunt deze ook activeren en configureren zoals elke andere module op uw systeem. Het unieke aan mod_proxy is dat het niet slechts één module is. In feite bestaat het uit een verzameling van verschillende modules die u hieronder vindt. Elk van deze heeft zijn eigen functie. Op deze manier biedt mod_proxy u veel diversiteit in functionaliteit.
Bekijk de volgende mod_proxy-modules:
mod_proxy
Dit is de hoofd-proxymodule. In Apache kunt u deze module gebruiken om verschillende verbindingen te configureren en te beheren. Het kan u ook helpen verbindingen om te leiden.
mod_proxy_http
Zoals de naam al doet vermoeden, houdt deze module zich bezig met de HTTP- en HTTPS-protocollen. U kunt deze module gebruiken om de proxyfuncties van deze protocollen te implementeren.
mod_proxy_ftp
Mod_proxy_ftp werkt wanneer u te maken heeft met het FTP-protocol.
mod_proxy_connect
Deze module is handig wanneer u SSL-tunneling uitvoert.
mod_proxy_ajp
U kunt mod_proxy_ajp gebruiken wanneer u met het AJP-protocol werkt.
mod_proxy_wstunnel
Dit is handig wanneer u werkt met websockets zoals WS en WSS.
mod_proxy_balancer
Als u toegang wilt tot functies voor load balancing en clustering over meerdere servers, dan kunt u deze module gebruiken.
mod_cache
De mod_cache-module is, zoals verwacht, handig voor cachingdoeleinden.
mod_headers
U kunt deze module gebruiken om de headers te beheren die u maakt met het HTTP-protocol.
mod_deflate
Deze module wordt gebruikt voor compressiedoeleinden.
Als u nog meer details over deze modules wilt weten, kunt u de officiële Apache-website bezoeken. De officiële documentatie geeft u ook meer informatie over mod_proxy en Apache zelf.
Hoe installeert u Apache en mod_proxy?
Hier zijn enkele eenvoudig te volgen stappen om Apache en mod_proxy op uw systeem te installeren:
- De server voorbereiden
Allereerst moet u ervoor zorgen dat uw cloudserver is voorbereid. Om dit te doen, moet u uw besturingssysteem en bijbehorende software bijwerken naar de nieuwste versies.
Gebruik de volgende opdrachten om uw toepassingen te upgraden:
|
1 2 3 |
apt install aptitude aptitude update aptitude -y upgrade |
- Het Essentials-pakket installeren
Zodra u uw server heeft voorbereid, moet u deze uitrusten met de essentiële tools. Hiervoor moet u het pakket build-essential installeren. Dit pakket bestaat uit alle basistools die u nodig heeft om dingen vanaf de bron te installeren. U kunt het installeren met dit commando:
|
1 |
aptitude install -y build-essential |
- Haal de modules en afhankelijkheden op
Ten slotte moet u de modules en afhankelijkheden installeren. Dit kunt u doen door het volgende commando uit te voeren:
|
1 |
aptitude install -y apache2 apache2-bin libxml2-dev |
Modules activeren: Hoe configureert u Apache met proxyverbindingen?
Voordat u überhaupt toekomt aan het configureren van Apache, moet u uw modules activeren. Deze modules helpen u bij het maken van de nodige configuraties en het uitvoeren van verschillende taken.
Om beginnen moet u controleren welke modules al actief zijn op uw systeem. Niet alleen dat, maar u moet er ook voor zorgen dat alle modules correct zijn geïnstalleerd en kunnen worden ingeschakeld. Het uitvoeren van dit commando toont alle beschikbare modules op uw Apache-server:
|
1 |
a2enmod |

Zoals u kunt zien, toont het antwoord u alle beschikbare modules in de vorm van een uitgebreide lijst. Blader door deze lijst en bepaal welke modules u wilt activeren. Om Apache dit te laten weten, kunt u het volgende commando gebruiken en uw gewenste modules invoeren in plaats van de voorbeelden:
|
1 |
proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html lbmethod_byrequests |
Aan de andere kant kunt u elke module ook afzonderlijk activeren. Om dat te doen, gebruikt u de volgende commando's:
|
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 |
Bepaalde modules zijn waarschijnlijk standaard geactiveerd op uw server. U vraagt zich misschien af hoe u kunt bevestigen dat ze zijn ingeschakeld. Om er zeker van te zijn dat de gewenste module actief is, kunt u proberen deze twee keer te activeren. Dit garandeert dat de module is ingeschakeld.
- Standaard configuratie-instellingen wijzigen
Eerst moet u de standaard configuratie-instellingen wijzigen. Om dit te doen, moet u het standaard configuratiebestand openen, namelijk 000-default.conf. Dit bestand bevindt zich in /etc/apache2/sites-enabled. We moeten het zodanig aanpassen dat het de proxyfunctie krijgt.
U begint met het openen van de nano-teksteditor om de standaard virtual host te bewerken. U kunt dit doen door dit commando uit te voeren:
|
1 |
nano /etc/apache2/sites-enabled/000-default.conf |
We zullen gezamenlijk naar de mod_virtual host en mod_proxy verwijzen als de proxy virtual host. Nu kunt u de volgende configuratie-instellingen implementeren. U kunt de nodige wijzigingen aanbrengen zoals u dat wilt voor uw systeem en uw vereisten:
|
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> |
U kunt opslaan en afsluiten zodra u op Ctrl + X drukt en bevestigt met Y.
- De Load Balancing-functie activeren
Load balancing helpt u de verbindingen op uw proxy effectief te verdelen. Dit is een zeer nuttig idee voor wanneer u meerdere backend-applicatieservers gebruikt in plaats van één enkele. De load balancing-functie verdeelt de verbinding of de 'load'.
Om deze functie in te schakelen, moet u de stappen herhalen die eerder in deze handleiding zijn genoemd. U moet echter de volgende configuratie-instellingen gebruiken bij het instellen van de virtual host:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:*> <Proxy balancer://mycluster> # Definieer back-end servers: # Server 1 BalancerMember http://0.0.0.0:8080/ # Server 2 BalancerMember http://0.0.0.0:8081/ </Proxy> # Pas VH-instellingen toe naar wens # Configureer echter het ProxyPass-argument om # "mycluster" te gebruiken om de belasting te verdelen ProxyPass / balancer://mycluster </VirtualHost> |
- Reverse proxy-ondersteuning activeren
U moet een virtual host uw reverse proxy laten ondersteunen als u werkt met SSL -verbindingen en -certificaten. Deze secundaire virtual host moet de volgende instellingen hebben. U moet de instructies in de vorige stappen uitvoeren. Het enige wat u hoeft te doen is de configuratieopties te vervangen door de hieronder genoemde opties:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<VirtualHost *:443> SSLEngine On # Stel het pad naar het SSL-certificaat in # Gebruik: SSLCertificateFile /pad/naar/cert.pem SSLCertificateFile /etc/apache2/ssl/file.pem # Servers om de verbinding naar te proxyen, of; # Lijst met applicatieservers: # Gebruik: # ProxyPass / http://[IP-adres]:[poort]/ # ProxyPassReverse / http://[IP-adres]:[poort]/ # Voorbeeld: ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ # Of verdeel de belasting: # ProxyPass / balancer://balancer_cluster_naam </VirtualHost> |
U moet ook de SSL-module inschakelen om de bovenstaande configuratie te laten werken:
|
1 |
sudo a2enmod ssl |
- Apache herstarten
Alle configuraties zijn voltooid. Ten slotte kunt u uw Apache-server herstarten om de wijzigingen toe te passen. U kunt Apache herstarten door de volgende opdracht uit te voeren:
|
1 |
service apache2 restart |
Conclusie
Voila! U hebt zojuist met succes een reverse proxy-gateway ingesteld in uw Apache-server. Nu zal Apache de inkomende verbindingen omleiden naar uw applicatieservers in de backend.
Het mooie hiervan is dat het configuratieproces weinig moeite kost en vrij eenvoudig is. Nu u de exacte stappen kent om daar te komen, zou u geen enkele moeite moeten hebben om een reverse proxy in Apache in te stellen.
Veel computerplezier!

Reacties
Nog geen reacties. Wees de eerste.