Complete gids voor het installeren en configureren van Nginx op Ubuntu [Beginner-vriendelijk]

1. Inleiding

Veel mensen willen Nginx gebruiken op Ubuntu, maar als je nieuw bent, weet je misschien niet waar je moet beginnen. Dit artikel biedt een stapsgewijze handleiding voor beginners, die alles beslaat van installatie en configuratie tot beheer in een Ubuntu-omgeving.

Wat is Nginx?

Nginx (uitgesproken als “engine-x”) is een high-performance HTTP-server en reverse proxy-server. Het wordt wereldwijd veel gebruikt vanwege zijn lichtgewicht ontwerp en flexibiliteit, vooral zijn vermogen om hoge verkeersbelastingen aan te kunnen.

Voordelen van het gebruik van Nginx op Ubuntu

Ubuntu is een populaire Linux-distributie die goed werkt met Nginx. Met zijn pakketbeheersysteem (APT) is het installeren en updaten van Nginx eenvoudig, en het biedt uitstekende stabiliteit en beveiliging.

Door dit artikel te lezen, leer je:

  • Hoe je Nginx installeert op Ubuntu
  • Basisconfiguratie- en beheersprocedures
  • Prestatie-optimalisatie en probleemoplossing

Laten we nu beginnen.

侍エンジニア塾

2. Hoe Nginx te installeren op Ubuntu

Om Nginx op Ubuntu te draaien, moet je het eerst correct installeren. Dit gedeelte biedt een duidelijke, stapsgewijze handleiding voor het installatieproces.

Vereiste pakketten controleren

Voordat je met de installatie begint, zorg ervoor dat je systeem up-to-date is door de volgende commando’s uit te voeren:

sudo apt update
sudo apt upgrade

Nginx installeren

Om Nginx te installeren, voer je het volgende commando in:

sudo apt install nginx

Dit commando downloadt en installeert Nginx automatisch vanuit de APT-repository van Ubuntu.

De installatie verifiëren

Om te controleren of de installatie succesvol was, gebruik je het volgende commando om de Nginx-status te controleren:

sudo systemctl status nginx

Als de uitvoer “active (running)” toont, was de installatie succesvol.

De firewall configureren

Ubuntu bevat UFW (Uncomplicated Firewall), die je kunt gebruiken om Nginx-verkeer toe te staan.

sudo ufw allow 'Nginx Full'
sudo ufw enable

Nu is Nginx ingesteld om te werken op poorten 80 (HTTP) en 443 (HTTPS).

3. Basis Nginx-configuratie op Ubuntu

Alleen Nginx installeren is niet genoeg. Vervolgens moet je het correct configureren voor effectief gebruik.

Configuratiebestanden en basisstructuur

De belangrijkste Nginx-configuratiebestanden bevinden zich in:

  • Hoofdconfiguratiebestand: /etc/nginx/nginx.conf
  • Sitespecifieke configuratiebestanden: In de map /etc/nginx/sites-available/

Meestal maak je een virtuele host-configuratiebestand in sites-available en maak je een symbolische link naar sites-enabled voor activering.

Een virtuele host instellen

Virtuele hosts stellen je in staat om meerdere domeinen of projecten te beheren op één server. Het volgende voorbeeld stelt example.com in:

sudo nano /etc/nginx/sites-available/example.com

Voer de volgende inhoud in:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

Sla het bestand op en activeer de configuratie met de volgende commando’s:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

SSL/TLS configureren

Om beveiligde communicatie in te schakelen, stel je een SSL/TLS-certificaat in. Je kunt Let’s Encrypt gebruiken om een gratis certificaat te verkrijgen.

Installeer eerst certbot:

sudo apt install certbot python3-certbot-nginx

Voer vervolgens het volgende commando uit om het SSL-certificaat te verkrijgen en automatisch te configureren:

sudo certbot --nginx -d example.com -d www.example.com

Om verlopen te voorkomen, stel je ook automatische certificaatvernieuwing in.

4. Nginx beheren en besturen

Na het installeren en configureren van Nginx, moet je leren hoe je het start, stopt, configuraties herlaadt en problemen oplost. Dit gedeelte beslaat essentiële beheerscommando’s en probleemoplossingstechnieken.

Basis Nginx-commando’s

Op Ubuntu kun je Nginx beheren met het systemctl-commando. Hier zijn de belangrijkste bewerkingen:

  1. Nginx starten
sudo systemctl start nginx
  1. Nginx stoppen
sudo systemctl stop nginx
  1. Nginx herstarten Vereist bij het aanbrengen van grote configuratiewijzigingen.
sudo systemctl restart nginx
  1. Nginx herladen Pas configuratiewijzigingen toe zonder herstarten.
sudo systemctl reload nginx
  1. Nginx-status controleren Controleer of Nginx correct draait.
sudo systemctl status nginx

Automatisch opstarten inschakelen

Om ervoor te zorgen dat Nginx automatisch start na een systeembreboot:

  1. Automatisch opstarten inschakelen
sudo systemctl enable nginx
  1. Automatisch opstarten uitschakelen (indien nodig)
sudo systemctl disable nginx

Logboeken controleren voor probleemoplossing

Als Nginx niet zoals verwacht werkt, controleer dan de logboeken om de oorzaak te vinden.

  1. Foutlogboeken bekijken
sudo tail -f /var/log/nginx/error.log
  1. Toeganglogboeken bekijken
sudo tail -f /var/log/nginx/access.log

5. De Nginx-firewall configureren en beveiliging verbeteren

Beveiliging is cruciaal bij het bedienen van Nginx. Dit gedeelte legt uit hoe je poorten configureert met behulp van de Ubuntu-firewall (UFW) en de Nginx-beveiliging versterkt.

Poorten openen met UFW

UFW (Uncomplicated Firewall) is een firewalltool die standaard is inbegrepen in Ubuntu. Om ervoor te zorgen dat Nginx correct functioneert, moet je poorten 80 (HTTP) en 443 (HTTPS) openen.

  1. De huidige UFW-status controleren
sudo ufw status
  1. Nginx-verkeer toestaan Voer de volgende opdracht uit om de benodigde poorten te openen:
sudo ufw allow 'Nginx Full'
  1. UFW inschakelen Als de firewall is uitgeschakeld, schakel deze dan in:
sudo ufw enable

Aanvullende beveiligingsverbeteringen

  1. Onnodige HTTP-methoden uitschakelen Om de beveiliging te verbeteren, schakel onnodige HTTP-methoden uit door het volgende toe te voegen aan het Nginx-configuratiebestand:
if ($request_method !~ ^(GET|POST|HEAD)$) {
    return 444;
}
  1. Directory-weergave uitschakelen Voorkom dat directory-inhoud publiek toegankelijk is door het volgende toe te voegen:
autoindex off;
  1. SSL/TLS versterken Gebruik sterke versleutelingsinstellingen in je SSL-configuratie:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers HIGH:!aNULL:!MD5;

6. Nginx-prestatietuning en probleemoplossing

Nginx staat bekend om zijn hoge prestaties, maar juiste tuning kan de efficiëntie verder verbeteren. Dit gedeelte behandelt optimalisatietechnieken en veelvoorkomende probleemoplossingsoplossingen.

Prestatietuning

1. Worker-processen configureren

Nginx volgt een multi-process architectuur. Het instellen van een geschikt aantal worker-processen optimaliseert de prestaties.

Bewerk het configuratiebestand /etc/nginx/nginx.conf en stel in:

worker_processes auto;

De instelling “auto” past het aantal worker-processen automatisch aan op basis van de CPU-kernen.

2. Worker-verbindingen verhogen

Standaard heeft elk worker-proces een beperkt aantal verbindingen. Het verhogen van deze waarde verbetert het omgaan met hoge verkeersbelastingen.

Voeg de volgende regel toe of wijzig deze in het configuratiebestand:

worker_connections 1024;

3. HTTP/2 inschakelen

Het inschakelen van HTTP/2 verbetert de communicatieve efficiëntie en versnelt het laden van websites.

Bewerk het bestand /etc/nginx/sites-available/example.com en wijzig de listen-directief als volgt:

listen 443 ssl http2;

Herlaad vervolgens Nginx:

sudo systemctl reload nginx

4. Inhoudscompressie inschakelen

Bestanden comprimeren voordat ze worden verzonden vermindert het bandbreedtegebruik en verbetert de laadtijden.

Voeg de volgende instellingen toe of schakel ze in:

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

5. Caching configureren

Het instellen van caching vermindert herhaalde verzoeken voor statische bronnen.

Voeg de volgende configuratie toe:

location ~* .(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg)$ {
    expires 30d;
    access_log off;
}

Veelvoorkomende probleemoplossing

1. Trage verzoekafhandeling onder hoge belasting

  • Oorzaak: Onvoldoende worker-processen of verbindingslimieten.
  • Oplossing: Pas worker-processen en verbindingen aan, of overweeg het gebruik van een load balancer.

2. “403 Forbidden” Fout

  • Oorzaak: Onjuiste root directive in het configuratiebestand of onjuiste bestandstoestemmingen.
  • Oplossing: Controleer de root directive en werk bestandstoestemmingen bij:
sudo chmod -R 755 /var/www/example.com/html
sudo chown -R www-data:www-data /var/www/example.com/html

3. Server Timeout-problemen

  • Oorzaak: Lange verzoekverwerkingstijd.
  • Oplossing: Pas timeout-instellingen aan:
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;

4. Nginx Herstartfouten

  • Oorzaak: Fouten in het configuratiebestand.
  • Oplossing: Test de configuratie voordat je herstart:
sudo nginx -t

7. Samenvatting en Volgende Stappen

In deze handleiding hebben we behandeld hoe je Nginx installeert, configureert en beheert op Ubuntu. Laten we herzien wat we hebben geleerd en de volgende stappen verkennen.

Samenvatting van Belangrijke Punten

1. Nginx Installeren op Ubuntu

  • Vereiste pakketten voorbereid en Nginx geïnstalleerd met behulp van APT.
  • Firewall geconfigureerd om Nginx-verkeer toe te staan.

2. Basisconfiguratie

  • Begrepen van de structuur van het Nginx-configuratiebestand en ingesteld van virtuele hosts en SSL/TLS.

3. Nginx Beheren

  • Essentiële commando’s geleerd voor het starten, stoppen en herladen van Nginx.
  • Logs gecontroleerd voor probleemoplossing.

4. Beveiligingsverbeteringen

  • UFW geconfigureerd en extra beveiligingsinstellingen toegepast.

5. Prestatie-optimalisatie en Probleemoplossing

  • Worker-processen geoptimaliseerd, HTTP/2 ingeschakeld en caching ingesteld.
  • Veelvoorkomende Nginx-problemen aangepakt.

Volgende Stappen

Nu je de basis van Nginx op Ubuntu hebt, overweeg deze volgende stappen:

  • Leer geavanceerde configuraties zoals load balancing en reverse proxy.
  • Verbeter beveiliging met WAF en extra Nginx-beveiligingsmodules.
  • Automatiseer implementaties met Ansible of Docker.
  • Monitor prestaties met tools zoals Prometheus en Grafana.

Door deze concepten toe te passen, kun je effectief een hoogwaardige webserver beheren en uitvoeren met Nginx op Ubuntu.

年収訴求