Hoe Nginx te installeren op Debian 12, 11 of 10

Nginx is een krachtige webserver die bekend staat om zijn hoge prestaties en lage bronnenverbruik. Oorspronkelijk ontworpen om het C10k-probleem aan te pakken, blinkt het uit in het leveren van statische inhoud, taakverdeling en reverse proxying. De combinatie van Nginx met Debian, bekend om zijn stabiliteit en veiligheid, resulteert in een robuuste en betrouwbare serveromgeving.

Belangrijkste kenmerken van Nginx:

  • Hoge performantie: Verwerkt efficiënt meerdere gelijktijdige verbindingen.
  • Laag hulpbronnengebruik: Geoptimaliseerd voor gebruik met minimaal geheugen en CPU.
  • Load-balancering: Verdeelt verkeer over meerdere servers voor betere prestaties.
  • Omgekeerde proxying: Stuurt klantverzoeken naadloos door naar backend-servers.
  • Afhandeling van statische inhoud: Serveert statische bestanden snel en efficiënt.
  • Beveiligingsfuncties: Ondersteunt SSL/TLS voor gecodeerde communicatie.
  • Flexibiliteit: Ondersteunt protocollen zoals HTTP, HTTPS, SMTP, POP3 en IMAP.

Voordelen van het combineren van Nginx met Debian:

  • Stabiliteit: Debian's reputatie op het gebied van stabiliteit zorgt ervoor dat uw server betrouwbaar blijft.
  • Beveiliging: De robuuste beveiligingsmaatregelen van Debian beschermen uw Nginx-server tegen kwetsbaarheden.
  • Makkelijk te gebruiken: Het pakketbeheersysteem van Debian vereenvoudigt het installeren en onderhouden van Nginx.
  • Maatschappelijke hulp: Nginx en Debian hebben sterke gemeenschappen die uitgebreide bronnen en ondersteuning bieden.

Als u overgaat naar de installatie, zult u merken dat de stabiliteit van Debian perfect samengaat met de efficiëntie van Nginx, waardoor een ideale omgeving voor uw webapplicaties wordt gecreëerd. Laten we ons verdiepen in de stappen die nodig zijn om Nginx op een Debian-server te installeren en configureren.

Uw systeem voorbereiden vóór de installatie van Nginx

Zorg ervoor dat uw systeem is bijgewerkt voordat u Nginx installeert. Dit voorkomt mogelijke conflicten tijdens de installatie en vermindert het risico op compatibiliteitsproblemen en beveiligingsproblemen.

Om uw systeempakketten bij te werken, voert u het volgende uit:

sudo apt update && sudo apt upgrade

Met deze opdracht wordt de lijst met beschikbare updates opgehaald (via apt update) en upgradet vervolgens de huidige softwarepakketten naar hun nieuwste versies (met behulp van apt upgrade).

Installeer de NGINX-webserverstandaard

NGINX is standaard beschikbaar in de Debian-repository's. Dit maakt het installatieproces eenvoudig.

Voer de volgende opdracht uit om nginx te installeren:

sudo apt install nginx

De apt install opdracht vertelt APT het hulpprogramma voor pakketverwerking (een onderdeel van het Debian-systeem) om het NGINX-pakket te installeren.

Optioneel: Installeer de NGINX-volledige versie

NGINX biedt een nginx-full versie met extra modules die niet in de standaardversie voorkomen. Als je meer functionaliteit nodig hebt, installeer dan de nginx-volledige versie:

sudo apt install nginx-full

Optioneel: Installeer de NGINX-Extras-versie

Voor een nog bredere functieset kunt u de nginx-extras versie. Installeren:

sudo apt install nginx-extras

De NGINX-installatie verifiëren

Zorg er na de installatie voor dat NGINX correct werkt.

Controleer de NGINX-servicestatus met het volgende:

systemctl status nginx

NGINX werkt correct als de uitgang ‘actief (actief)’ weergeeft. Als dit niet het geval is, wordt in de uitvoer de fout gedetailleerd beschreven voor het oplossen van problemen.

Als NGINX niet is ingeschakeld, gebruikt u:

sudo systemctl enable nginx --now

Configureer UFW Firewall voor Nginx

UFW, of Uncomplicated Firewall, biedt een eenvoudig te gebruiken interface voor het beheren van iptables-firewallregels. Het wordt niet standaard op Debian geïnstalleerd, maar u kunt het verkrijgen via de standaardrepository's. Als uw server openbare toegang heeft, moet u ter beveiliging UFW-regels instellen.

Installeer UFW-firewall

Als UFW nog niet op uw systeem is geïnstalleerd, kunt u dit doen door de volgende opdracht uit te voeren:

sudo apt install ufw

Schakel UFW-firewall in

Zodra de installatie is voltooid, kunt u UFW inschakelen door de volgende opdracht uit te voeren:

sudo ufw enable

De standaardinstellingen van UFW blokkeren alle inkomende verbindingen en staan ​​alle uitgaande verbindingen toe. Dit betekent dat het ongevraagde systeemtoegang tegenhoudt, maar uw systeem de buitenwereld laat bereiken.

Lijst met geïnstalleerde applicaties

UFW maakt gebruik van applicatieprofielen, dit zijn sets met regels voor specifieke applicaties. Om geïnstalleerde applicaties met UFW-profielen te zien, voert u het volgende uit:

sudo ufw app list

UFW-regels configureren voor NGINX

Afhankelijk van uw behoeften kunt u UFW configureren om NGINX-verbindingen mogelijk te maken via HTTP (poort 80), HTTPS (poort 443) of beide.

Alleen voor HTTP (poort 80):

sudo ufw allow 'Nginx HTTP'

Alleen HTTPS (poort 443):

sudo ufw allow 'Nginx HTTPS'

Zowel HTTP als HTTPS:

sudo ufw allow 'Nginx Full'

Firewallregels verifiëren

Controleer de actieve firewallregels om te bevestigen dat uw regels van kracht zijn:

sudo ufw status

NGINX-configuratie testen

Zorg ervoor dat u na het instellen van UFW de NGINX-bestemmingspagina kunt zien. Ga in uw browser naar het IP-adres van uw server:

http://your_server_ip

Of, voor lokale instellingen:

http://localhost

Stel dat u de NGINX-standaardpagina ziet; uw configuratie werkt. Hiermee wordt de firewall-installatie voor NGINX op Debian beëindigd.

Maak NGINX-serverblokken

Net als de virtuele hosts van Apache kunt u met NGINX-serverblokken meerdere domeinen vanaf één server hosten. Elk domein heeft zijn eigen configuratie-instellingen. Vervang voor deze handleiding 'example.com' door uw werkelijke domeinnaam.

Maak een directory voor uw domein

Stel een directory in voor uw domein. In deze map worden de bestanden van uw website opgeslagen:

sudo mkdir -p /var/www/example.com/

Wijs eigendom toe aan de Nginx-directory

Wijs directory-eigendom toe aan de “www-data”-gebruiker en -groep, die NGINX gewoonlijk gebruikt:

sudo chown -R www-data:www-data /var/www/example.com/

Maak een Nginx-test-HTML-pagina

Maak een test-HTML-pagina in uw domeinmap om uw NGINX-installatie te bevestigen:

sudo nano /var/www/example.com/index.html

Voeg de volgende HTML-code toe:

<html>
 <head>
  <title>Welcome to Example.com</title>
 </head>
 <body>
   <h1>Success! The NGINX server block is working!</h1>
 </body>
</html>

Nadat u de code in de nano-editor hebt geplakt, drukt u op CTRL+O om de wijzigingen op te slaan en vervolgens op CTRL+X om de editor af te sluiten.

Maak een NGINX-serverblok voor testpagina

Stel een serverblok in voor uw website:

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

Voeg de volgende configuratie toe:

server {
 listen 80;
 listen [::]:80;

 root /var/www/example.com/;
 index index.html index.htm index.nginx-debian.html;

 server_name example.com www.example.com;

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

Deze configuratie vertelt NGINX om voor beide te luisteren naar inkomende verbindingen op poort 80 example.com En www.example.com. Zorg ervoor dat u de root -richtlijn met het mappad dat u eerder hebt gemaakt.

Schakel het NGINX-serverblok in via een symlink

Schakel uw serverblok in door een symbolische link te maken van de voor sites beschikbare map naar de voor sites geschikte map:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Definitieve configuratie en testrun

Ten slotte zullen we het standaard NGINX-configuratiebestand bewerken en een testrun uitvoeren om er zeker van te zijn dat alles werkt zoals verwacht.

Het NGINX-configuratiebestand bewerken

Open de nginx.conf bestand:

sudo nano /etc/nginx/nginx.conf

Zoek de lijn server_names_hash_bucket_size 64; binnen de http {} blokkeer en verwijder het commentaar.

Met deze richtlijn kan NGINX lange domeinnamen en grotere aantallen servernamen verwerken door voor dit doel meer geheugen toe te wijzen. Zorg er echter voor dat u deze waarde niet te hoog instelt, omdat dit meer geheugen in beslag kan nemen dan nodig is.

Sla de wijzigingen op en sluit de editor af door op CTRL+O en CTRL+X te drukken.

Test uw NGINX-configuratie

Voordat u doorgaat en NGINX opnieuw opstart, is het een goede gewoonte om te controleren of uw configuratiesyntaxis correct is. Voer de volgende opdracht uit om een ​​testrun te starten:

sudo nginx -t

Als uw configuratie correct is, ziet u deze uitvoer:

nginx: de syntaxis van het configuratiebestand /etc/nginx/nginx.conf is ok nginx: de test van het configuratiebestand /etc/nginx/nginx.conf is succesvol

Deze berichten geven aan dat uw NGINX-configuratie succesvol is gevalideerd.

Uw serverblok verifiëren

Om ervoor te zorgen dat uw serverblok correct functioneert, opent u uw domein in een webbrowser. U zou de testpagina moeten zien die bevestigt dat uw serverblok actief is.

Aanvullende Nginx-opdrachten

Verbetering van de bestandsbeveiliging op uw webserver

Beveiliging van bestanden en mappen op uw webserver staat voorop. Vermijd al te tolerante toegangsrechten. Gebruik deze opdrachten om de juiste machtigingen in te stellen voor alle bestanden en mappen in uw webroot.

Vergeet niet te vervangen /var/www/example.com/ met uw webroot-pad:

sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;

Met deze opdrachten worden lees- en uitvoeringsrechten voor mappen en lees-schrijfrechten voor bestanden voor de eigenaar ingesteld. Groepen en anderen krijgen alleen-lezen toegang. Pas deze machtigingen aan als uw toepassing dit vereist.

Nginx-beveiliging met Let's Encrypt Gratis SSL-certificaat

Het gebruik van het HTTPS-protocol garandeert de beveiliging van de webserver. Let's Encrypt biedt een gratis SSL-certificaat aan. Installeer het certbot-pakket met:

sudo apt install python3-certbot-nginx

Start vervolgens het maken van het certificaat:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Vervang door uw e-mailadres en domeinnaam. Met deze opdracht wordt HTTPS ingesteld met de vereiste beveiligingsfuncties.

Automatische certificaatvernieuwing instellen

Let's Encrypt-certificaten duren 90 dagen. Stel automatische verlengingen in met het Certbot-script. Test het proces:

sudo certbot renew --dry-run

Als dit lukt, voegt u het vernieuwingscommando toe aan crontab:

sudo crontab -e

Voeg deze regel toe om dagelijks om middernacht te verlengen:

00 00 */1 * * /usr/sbin/certbot-auto renew

Nginx-serverlogboeken

Controleer uw serverlogboeken voor een goed onderhouden webserver. Logboeken bevinden zich standaard in /var/log/nginx. Lijst ze met:

cd /var/log/nginx && ls -l

De meest relevante logbestanden zijn de access.log En error.log. Om logboeken in realtime te monitoren, gebruikt u de tail -f commando gevolgd door het pad naar het logboek:

tail -f /var/log/nginx/access.log

Update Nginx

Voordat u uw Nginx-server bijwerkt, is het verstandig een back-up te maken van uw huidige configuraties. Om een ​​back-up te maken van uw hoofdbestand nginx.conf bestand gebruikt u het volgende commando:

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx-backup.conf

In gevallen waarin u uw Nginx-installatie uitgebreid heeft aangepast, wilt u mogelijk een back-up maken van uw volledige Nginx-map:

sudo cp -r /etc/nginx/ /etc/nginx-bkup

Nu uw configuraties veilig zijn opgeslagen, kunt u nu doorgaan met het updaten van Nginx:

sudo apt update
sudo apt upgrade

Regelmatig een back-up maken van uw configuraties is een goede gewoonte, vooral in complexe installaties.

Verwijder Nginx

Als u Nginx niet langer op uw server nodig heeft, kunt u deze verwijderen door deze stappen te volgen. Zorg er eerst voor dat de Nginx-service is gestopt:

sudo systemctl disable nginx --now

Verwijder vervolgens het Nginx-pakket helemaal:

sudo apt remove nginx

Mogelijk vindt u nog steeds overblijfselen van Nginx-configuraties in de /etc/nginx map. Om deze te verwijderen, gebruikt u de opdracht:

sudo rm -R /etc/nginx/

Houd er rekening mee dat hierdoor al uw aangepaste configuratiebestanden worden verwijderd, dus zorg ervoor dat u een back-up heeft van alles wat u nodig hebt voordat u doorgaat met deze stap.

Configureer logboekrotatieparameters in Nginx

Nginx bevat standaard een dagelijkse logrotatiefunctie. U kunt deze instellingen echter aanpassen aan uw behoeften.

Toegang tot configuratiebestand voor logrotatie

Om de instellingen voor logrotatie te wijzigen, heeft u toegang tot het configuratiebestand nodig. Zo kunt u het openen met de nano-teksteditor:

sudo nano /etc/nginx/logrotate.d/nginx

Zodra u het bestand opent, ziet u inhoud die lijkt op het volgende. Pas de richtlijnen in dit bestand aan om te voldoen aan uw behoeften op het gebied van het bewaren en rouleren van logbestanden, vooral als u monitoringtools zoals fail2ban gebruikt.

Voorbeeld van configuratiebestand voor logrotatie

/var/log/nginx/*.log {
  daily
  missingok
  rotate 14
  compress
  delaycompress
  notifempty
  create 0640 www-data adm
  sharedscripts
  prerotate
  if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
  run-parts /etc/logrotate.d/httpd-prerotate; \
  fi \
  endscript
  postrotate
  invoke-rc.d nginx rotate >/dev/null 2>&1
  endscript
}

Primaire configuratieparameters begrijpen

Binnen deze configuratie concentreren systeembeheerders zich doorgaans op twee hoofdinstellingen:

  1. Dagelijks: Met deze instelling wordt de rotatiefrequentie van het logboek ingesteld. Hoewel de standaardinstelling 'dagelijks' is, kunt u dit wijzigen in 'wekelijks' of 'maandelijks'. Dagelijkse rotaties vereenvoudigen echter doorgaans het logboekbeheer.
  2. Draai 14: dit getal vertelt het systeem hoeveel logbestanden er moeten worden bewaard. Bij de instelling '14' blijven bijvoorbeeld de 14 laatste logboeken behouden. Als u slechts een week aan logs wilt opslaan, past u dit aantal aan naar '7'.

Hoewel je met Nginx andere instellingen kunt wijzigen, moet je altijd voorzichtig zijn met het aanbrengen van wijzigingen. Het wijzigen van instellingen zonder de impact ervan te begrijpen, kan onverwachte resultaten veroorzaken. Zorg ervoor dat u deze instellingen aan uw behoeften aanpast zonder onbedoelde problemen te veroorzaken.

Houd er rekening mee dat er geen one-size-fits-all benadering bestaat voor logbeheer. Beoordeel altijd uw specifieke omgeving en vereisten voordat u wijzigingen aanbrengt.

Afsluitende gedachten

In deze handleiding hebben we de installatie van Nginx op Debian doorgenomen, waarbij de installatie, configuratie en basisoptimalisatie aan bod kwamen. Door de efficiëntie van Nginx te combineren met de stabiliteit van Debian, hebt u een solide basis voor uw webserver gecreëerd. Vergeet niet om uw server up-to-date te houden en aanvullende Nginx-modules te verkennen voor verbeterde functionaliteit. Als je problemen tegenkomt, zijn de sterke gemeenschappen rond Debian en Nginx altijd geweldige bronnen. Bedankt voor het volgen, en veel plezier met hosten!

Joshua James
Volg mij
Laatste berichten van Joshua James (alles zien)

Plaats een reactie