Stuur ons een e-mail

info@serverion.com

Complete handleiding voor het bouwen van een veilige Nginx reverse proxy

Complete handleiding voor het bouwen van een veilige Nginx reverse proxy

Het creëren van een veilige, betrouwbare en schaalbare reverse proxy is cruciaal voor bedrijven en IT-professionals die websites met veel verkeer of complexe applicaties beheren. Nginx, een open-source webserver en reverse proxy, is een krachtige oplossing voor het routeren, optimaliseren en beveiligen van verkeer naar uw back-endservices. In deze handleiding doorlopen we het proces van het opzetten van een robuuste reverse proxy met Nginx op Ubuntu 24.04, waarbij we cruciale stappen behandelen zoals TLS-encryptie, snelheidsbeperking en integratie met Cloudflare.

Als u websites, e-commerceplatforms of mediaservers op ondernemingsniveau beheert, helpt deze gids u de prestaties te verbeteren, de uptime te garanderen en uw infrastructuur te beschermen tegen kwetsbaarheden.

Wat is een Nginx reverse proxy?

Een reverse proxy van Nginx fungeert als een intermediaire server tussen clients en backend-services. Deze stuurt clientverzoeken door naar de juiste backend-server, optimaliseert de belastingverdeling, verbetert de beveiliging en maakt functies zoals caching, SSL-beëindiging en verkeersfiltering mogelijk. Deze configuratie is met name handig voor het hosten van mediaservers, multi-site applicaties en services achter firewalls.

Waarom u een reverse proxy nodig hebt

Een reverse proxy biedt verschillende belangrijke voordelen:

  • Verbeterde beveiliging: Verbergt IP's van backendservers en maakt encryptie via TLS/SSL mogelijk.
  • Load Balancing: Verdeelt het verkeer gelijkmatig over meerdere backendservers.
  • Optimalisatie: Vermindert de latentie en verbetert de resource-efficiëntie.
  • Schaalbaarheid: Maakt het eenvoudiger om scenario's met veel verkeer te beheren.
  • Gemakkelijk beheer: Vereenvoudigt de configuratie van meerdere backendservices achter een uniform domein.

In deze tutorial laten we zien hoe u:

  • Stel Nginx in als reverse proxy.
  • Beveilig uw installatie met Let's Encrypt TLS-certificaten.
  • Configureer geavanceerde optimalisaties zoals snelheidsbeperking en doorsturen van verzoeken.
  • Integreer Cloudflare om ISP-poortbeperkingen te omzeilen.

Stap 1: Nginx en Certbot installeren op Ubuntu 24.04

Werk uw systeem bij

Voordat u software installeert, moet u ervoor zorgen dat uw systeem up-to-date is:

sudo apt update en sudo apt upgrade 

Installeer Nginx en Certbot

Gebruik de volgende opdrachten om Nginx en Certbot te installeren met de Nginx-plug-in:

sudo apt install nginx -y sudo apt install certbot python3-certbot-nginx -y 

Installatie verifiëren

Bevestig dat Nginx draait:

sudo systemctl status nginx 

Om de toegang te testen, bepaalt u het IP-adres van uw server:

IP-adres 

Bezoek het IP-adres in een browser. Als het lukt, zie je de standaard Nginx-welkomstpagina.

Stap 2: Firewallregels configureren

Eenvoudige firewall (UFW) inschakelen

Met UFW kunt u firewallregels eenvoudig beheren:

sudo ufw allow 'Nginx Full' sudo ufw allow OpenSSH sudo ufw enable 

Controleer de status van uw firewall om er zeker van te zijn dat de juiste poorten open zijn:

sudo ufw-status 

Stap 3: Nginx-proxyconfiguratie instellen

Aangepaste configuratiebestanden maken

Voor meer flexibiliteit en beveiliging kunt u fragmentbestanden gebruiken om specifieke configuraties op te slaan. Maak de volgende bestanden:

  1. Beveiligingsheaders:
    sudo nano /etc/nginx/snippets/security-headers.conf 
    Definieer beveiligingsheaders om de beveiliging te verbeteren:
    add_header X-Frame-Opties "ZELFDEORIGIN"; add_header X-Content-Type-Opties "nosniff"; add_header X-XSS-Protection "1; mode=block"; 
  2. Proxy-instellingen:
    sudo nano /etc/nginx/snippets/proxy.conf 
    Optimaliseer lange stromen en voorkom trage reacties:
    proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; 
  3. Tarieflimieten:
    sudo nano /etc/nginx/snippets/rate-limit.conf 
    Beperk overmatige verzoeken:
    limit_req_zone $binary_remote_addr zone=mylimit:10m snelheid=10r/s; 

Snippets opnemen in hoofdconfiguratie

Bewerk de hoofdconfiguratie van Nginx:

sudo nano /etc/nginx/nginx.conf 

Voeg het volgende toe onder de http blok:

inclusief /etc/nginx/snippets/*.conf; 

Start Nginx opnieuw om de wijzigingen toe te passen:

sudo systemctl herladen nginx 

Stap 4: Reverse Proxy instellen voor een back-endservice

Een virtuele host aanmaken

Maak een configuratiebestand voor uw back-endservice:

sudo nano /etc/nginx/sites-available/jellyfin 

Voorbeeldconfiguratie voor een Jellyfin-mediaserver:

server { luister 80; servernaam jelly.uwdomein.com; locatie / { proxy_pas http://10.10.0.112:8096; include /etc/nginx/snippets/proxy.conf; } } 

Maak de site toegankelijk door een symbolische link te maken:

sudo ln -s /etc/nginx/sites-available/jellyfin /etc/nginx/sites-enabled/ 

Test en herlaad Nginx:

sudo nginx -t sudo systemctl reload nginx 

Stap 5: Uw domein beveiligen met Let's Encrypt TLS

Gebruik Let's Encrypt om gratis certificaten uit te geven om uw domein te beveiligen:

sudo certbot --nginx -d jelly.uwdomein.com 

Certbot configureert SSL automatisch in uw Nginx-sitebestand. Om ervoor te zorgen dat certificaten automatisch worden verlengd, controleert u of de systemd-timer actief is:

sudo systemctl list-timers | grep certbot 

Stap 6: Cloudflare integreren voor extra beveiliging en ISP-poortbypass

Cloudflared installeren

Cloudflared creëert een beveiligde tunnel om verkeer via Cloudflare te routeren, waarbij ISP-beperkingen op poorten 80 en 443 worden omzeild:

  1. Download de .deb pakket van de GitHub-pagina van Cloudflare.
  2. Installeer het pakket:
    sudo dpkg -i cloudflared-versie.deb 

Een tunnel configureren

Verifieer met uw Cloudflare-account:

cloudflared tunnel login 

Een nieuwe tunnel maken:

cloudflared tunnel maak mijn-tunnel 

Bewerk het Cloudflare-configuratiebestand:

sudo nano /etc/cloudflared/config.yml 

Voorbeeldconfiguratie:

tunnel: mijn-tunnel inloggegevensbestand: /home/gebruiker/.cloudflared/mijn-tunnel.json ingang: - hostnaam: jelly.uwdomein.com service: http://localhost:8096 - service: http_status:404 

Start en activeer de tunnelservice:

sudo systemctl activeert cloudflared sudo systemctl start cloudflared 

Belangrijkste punten

  • Nginx Reverse Proxy: Essentieel voor het veilig routeren van verkeer en het optimaliseren van back-endservices.
  • TLS-codering: Gebruik Let's Encrypt om uw domeinen te beveiligen met gratis SSL-certificaten.
  • Firewallregels: Open de benodigde poorten voor HTTP (80), HTTPS (443) en SSH (22).
  • Beveiligingsoptimalisatie: Implementeer headers en snelheidsbeperking om aanvallen te voorkomen.
  • Cloudflare-integratie: Gebruik Cloudflared-tunnels voor veilige, ISP-vriendelijke hosting.
  • Administratie: Systemd-timers zorgen ervoor dat SSL-certificaten automatisch worden verlengd.

Conclusie

Het opzetten van een veilige Nginx reverse proxy vereist aandacht voor detail en zorgvuldige configuratie, maar de voordelen zijn de moeite meer dan waard. Of u nu mediaservers zoals Jellyfin host of bedrijfsapplicaties beheert, deze handleiding geeft u de tools en kennis om een zeer veilige en efficiënte omgeving te creëren. Met functies zoals TLS, Cloudflare-tunnels en geavanceerde optimalisaties is uw infrastructuur klaar voor de moderne eisen.

Bron: "Stop met het blootstellen van je apps! Bouw een veilige Nginx reverse proxy!" – KeepItTechie, YouTube, 19 augustus 2025 – https://www.youtube.com/watch?v=MzbhS2S7H_g

Gebruik: Ingebed ter referentie. Korte citaten gebruikt voor commentaar/recensie.

Gerelateerde blogberichten

nl_NL_formal