Sådan installeres Nginx på Debian 12, 11 eller 10

Nginx er en kraftfuld webserver kendt for sin høje ydeevne og lave ressourceforbrug. Oprindeligt designet til at håndtere C10k-problemet, udmærker den sig ved at levere statisk indhold, belastningsbalancering og omvendt proxy. Kombinationen af ​​Nginx med Debian, kendt for sin stabilitet og sikkerhed, resulterer i et robust og pålideligt servermiljø.

Nøglefunktioner i Nginx:

  • Høj ydeevne: Håndterer effektivt flere samtidige forbindelser.
  • Lavt ressourceforbrug: Optimeret til at køre med minimal hukommelse og CPU.
  • Belastningsbalancering: Fordeler trafik på tværs af flere servere for forbedret ydeevne.
  • Omvendt proxy: Videresender klientanmodninger til backend-servere problemfrit.
  • Håndtering af statisk indhold: Serverer statiske filer hurtigt og effektivt.
  • Sikkerhedsfunktioner: Understøtter SSL/TLS til krypteret kommunikation.
  • Fleksibilitet: Understøtter protokoller som HTTP, HTTPS, SMTP, POP3 og IMAP.

Fordele ved at kombinere Nginx med Debian:

  • Stabilitet: Debians ry for stabilitet sikrer, at din server forbliver pålidelig.
  • Sikkerhed: Debians robuste sikkerhedsforanstaltninger beskytter din Nginx-server mod sårbarheder.
  • Brugervenlighed: Debians pakkehåndteringssystem forenkler installation og vedligeholdelse af Nginx.
  • Fællesskabsstøtte: Nginx og Debian har stærke fællesskaber, der giver omfattende ressourcer og support.

Når du går over til opsætningen, vil du opdage, at Debians stabilitet passer perfekt til Nginx' effektivitet, hvilket skaber et ideelt miljø for dine webapplikationer. Lad os dykke ned i de nødvendige trin for at installere og konfigurere Nginx på en Debian-server.

Forberedelse af dit system før Nginx-installation

Sørg for, at dit system er opdateret, før du installerer Nginx. Dette forhindrer potentielle konflikter under installationen og reducerer risikoen for kompatibilitetsproblemer og sikkerhedssårbarheder.

For at opdatere dine systempakker skal du køre følgende:

sudo apt update && sudo apt upgrade

Denne kommando henter listen over tilgængelige opdateringer (via apt update) og opgraderer derefter de aktuelle softwarepakker til deres seneste versioner (ved hjælp af apt upgrade).

Installer NGINX' Web Server' standard

Som standard er NGINX tilgængelig i Debian-lagrene. Dette gør installationsprocessen ligetil.

Kør følgende kommando for at installere nginx:

sudo apt install nginx

Det apt install kommandoen fortæller APT pakkehåndteringsværktøjet (en del af Debian-systemet) om at installere NGINX-pakken.

Valgfrit: Installer NGINX-fuld version

NGINX tilbyder en nginx-full version med ekstra moduler, der ikke findes i standardversionen. Hvis du har brug for mere funktionalitet, skal du installere den fulde version af nginx:

sudo apt install nginx-full

Valgfrit: Installer NGINX-Extras-versionen

Overvej for et endnu bredere funktionssæt nginx-extras version. At installere:

sudo apt install nginx-extras

Bekræftelse af NGINX-installationen

Efter installationen skal du sikre dig, at NGINX kører korrekt.

Tjek NGINX-servicestatus med følgende:

systemctl status nginx

NGINX fungerer korrekt, hvis udgangen viser "aktiv (kører)." Hvis ikke, vil outputtet detaljere fejlen til fejlfinding.

Hvis NGINX ikke er aktiveret, skal du bruge:

sudo systemctl enable nginx --now

Konfigurer UFW Firewall til Nginx

UFW, eller Uncomplicated Firewall, giver en brugervenlig grænseflade til styring af iptables firewall-regler. Det er ikke installeret på Debian som standard, men du kan hente det fra standardlagrene. Hvis din server har offentlig adgang, bør du opsætte UFW-regler for sikkerhed.

Installer UFW Firewall

Hvis UFW ikke allerede er installeret på dit system, kan du gøre det ved at udføre følgende kommando:

sudo apt install ufw

Aktiver UFW Firewall

Når installationen er færdig, kan du aktivere UFW ved at køre følgende kommando:

sudo ufw enable

UFWs standardindstillinger blokerer alle indgående forbindelser og tillader alle udgående forbindelser. Det betyder, at det stopper uopfordret systemadgang, men lader dit system nå omverdenen.

Liste over installerede applikationer

UFW bruger applikationsprofiler, som er sæt regler for specifikke applikationer. For at se installerede programmer, der har UFW-profiler, skal du køre:

sudo ufw app list

Konfiguration af UFW-regler for NGINX

Afhængigt af dine behov kan du konfigurere UFW til at tillade NGINX-forbindelser via HTTP (Port 80), HTTPS (Port 443) eller begge dele.

Kun for HTTP (port 80):

sudo ufw allow 'Nginx HTTP'

Kun HTTPS (Port 443):

sudo ufw allow 'Nginx HTTPS'

Både HTTP og HTTPS:

sudo ufw allow 'Nginx Full'

Bekræftelse af firewall-regler

For at bekræfte, at dine regler er på plads, skal du kontrollere de aktive firewall-regler:

sudo ufw status

Test af NGINX-konfiguration

Efter opsætning af UFW skal du sikre dig, at du kan se NGINX-landingssiden. I din browser skal du gå til din servers IP-adresse:

http://your_server_ip

Eller for lokale opsætninger:

http://localhost

Antag, at du ser NGINX-standardsiden; din konfiguration virker. Dette afslutter firewall-opsætningen for NGINX på Debian.

Opret NGINX-serverblokke

Ligesom Apaches virtuelle værter lader NGINX-serverblokke dig hoste flere domæner fra én server. Hvert domæne har sine konfigurationsindstillinger. For denne vejledning skal du erstatte "example.com" med dit faktiske domænenavn.

Opret en mappe til dit domæne

Opret en mappe til dit domæne. Denne mappe gemmer dit websteds filer:

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

Tildel ejerskab til Nginx Directory

Tildel biblioteksejerskab til "www-data"-brugeren og -gruppen, som NGINX normalt bruger:

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

Opret en Nginx Test HTML-side

Opret en test HTML-side i dit domænebibliotek for at bekræfte din NGINX-opsætning:

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

Tilføj følgende HTML-kode:

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

Når du har indsat koden i nano-editoren, skal du trykke på CTRL+O for at gemme ændringerne og derefter på CTRL+X for at afslutte editoren.

Opret en NGINX-serverblok til testside

Konfigurer en serverblok til dit websted:

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

Tilføj følgende konfiguration:

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;
 }
}

Denne konfiguration fortæller NGINX at lytte efter indgående forbindelser på port 80 for begge example.com og www.example.com. Sørg for at udskifte root direktiv med den mappesti, du oprettede tidligere.

Aktiver NGINX Server Block via symlink

Aktiver din serverblokering ved at oprette et symbolsk link fra biblioteket med websteder til rådighed til webstedsaktiveret bibliotek:

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

Endelig konfiguration og testkørsel

Til sidst vil vi redigere standard NGINX-konfigurationsfilen og udføre en testkørsel for at sikre, at alt fungerer som forventet.

Redigering af NGINX-konfigurationsfilen

Åbn nginx.conf fil:

sudo nano /etc/nginx/nginx.conf

Kig efter linjen server_names_hash_bucket_size 64; indenfor http {} blokere og fjerne kommentarer.

Dette direktiv tillader NGINX at håndtere lange domænenavne og et større antal servernavne ved at allokere mere hukommelse til dette formål. Vær dog forsigtig med ikke at sætte denne værdi for højt, da den kan bruge mere hukommelse end nødvendigt.

Gem ændringerne og forlad editoren ved at trykke på CTRL+O og CTRL+X.

Test din NGINX-konfiguration

Før du går videre og genstarter NGINX, er det en god praksis at kontrollere, at din konfigurationssyntaks er korrekt. Kør følgende kommando for at starte en testkørsel:

sudo nginx -t

Hvis din konfiguration er korrekt, vil du se dette output:

nginx: konfigurationsfilen /etc/nginx/nginx.conf syntaks er ok nginx: konfigurationsfilen /etc/nginx/nginx.conf testen er vellykket

Disse meddelelser indikerer, at din NGINX-konfiguration er blevet valideret.

Bekræftelse af din serverblokering

For at sikre, at din serverblok fungerer korrekt, skal du åbne dit domæne i en webbrowser. Du bør se testsiden, der bekræfter, at din serverblok er aktiv.

Yderligere Nginx-kommandoer

Forbedring af filsikkerhed på din webserver

Sikkerhed for filer og mapper på din webserver er altafgørende. Undgå alt for tilladelige adgangsrettigheder. Brug disse kommandoer til at indstille korrekte tilladelser for alle filer og mapper i din webroot.

Husk at udskifte /var/www/example.com/ med din webroot-sti:

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

Disse kommandoer angiver læse- og udførelsestilladelser for mapper og læse-skrivetilladelser for filer for ejeren. Grupper og andre får skrivebeskyttet adgang. Juster disse tilladelser, som din applikation kræver.

Nginx Security med Let's Encrypt Gratis SSL-certifikat

Brug af HTTPS-protokol sikrer webserversikkerhed. Let's Encrypt giver et gratis SSL-certifikat. Installer certbot-pakken med:

sudo apt install python3-certbot-nginx

Start derefter oprettelsen af ​​certifikatet:

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

Erstat med din e-mail og domænenavn. Denne kommando sætter HTTPS op med de nødvendige sikkerhedsfunktioner.

Opsætning af automatisk certifikatfornyelse

Lad os kryptere certifikater sidste 90 dage. Konfigurer automatiske fornyelser med Certbot-scriptet. Test processen:

sudo certbot renew --dry-run

Hvis det lykkes, skal du tilføje fornyelseskommandoen til crontab:

sudo crontab -e

Medtag denne linje for at forny dagligt ved midnat:

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

Nginx-serverlogfiler

Overvåg dine serverlogfiler for en velholdt webserver. Som standard ligger logfiler i /var/log/nginx. List dem med:

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

De mest relevante logfiler er access.log og error.log. For at overvåge logfiler i realtid skal du bruge tail -f kommando efterfulgt af stien til loggen:

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

Opdater Nginx

Før du opdaterer din Nginx-server, er det klogt at lave en sikkerhedskopi af dine nuværende konfigurationer. For at sikkerhedskopiere din primære nginx.conf fil, brug følgende kommando:

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

I tilfælde, hvor du i vid udstrækning har tilpasset din Nginx-opsætning, vil du måske sikkerhedskopiere hele dit Nginx-bibliotek:

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

Med dine konfigurationer sikkert sikkerhedskopieret, kan du nu fortsætte med at opdatere Nginx:

sudo apt update
sudo apt upgrade

Regelmæssig sikkerhedskopiering af dine konfigurationer er god praksis, især i komplekse opsætninger.

Fjern Nginx

Hvis du ikke længere har brug for Nginx på din server, kan du fjerne det ved at følge disse trin. Først skal du sikre dig, at Nginx-tjenesten er stoppet:

sudo systemctl disable nginx --now

Fjern derefter Nginx-pakken helt:

sudo apt remove nginx

Du kan stadig finde rester af Nginx-konfigurationer i /etc/nginx vejviser. For at fjerne disse, brug kommandoen:

sudo rm -R /etc/nginx/

Husk, at dette vil fjerne alle dine brugerdefinerede konfigurationsfiler, så sørg for, at du har alt, hvad du har brug for sikkerhedskopieret, før du fortsætter med dette trin.

Konfigurer logrotationsparametre i Nginx

Nginx inkluderer som standard en funktion til daglig logrotation. Du kan dog tilpasse disse indstillinger baseret på dine behov.

Få adgang til konfigurationsfil til logrotation

For at ændre indstillingerne for logrotation skal du have adgang til konfigurationsfilen. Sådan kan du åbne det ved hjælp af nano-teksteditoren:

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

Når du åbner filen, vil du se indhold, der ligner følgende. Juster direktiverne i denne fil, så de passer til dine logopbevarings- og rotationsbehov, primært hvis du bruger overvågningsværktøjer som fail2ban.

Eksempel på logrotationskonfigurationsfil

/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
}

Forståelse af primære konfigurationsparametre

Inden for denne konfiguration fokuserer systemadministratorer typisk på to hovedindstillinger:

  1. Daglige: Denne indstilling indstiller logrotationsfrekvensen. Selvom den er standard til "dagligt", kan du ændre den til "ugentlig" eller "månedlig." Daglige rotationer forenkler dog typisk logstyring.
  2. Drej 14: Dette tal fortæller systemet, hvor mange logfiler der skal beholdes. For eksempel bevarer en indstilling på '14' de 14 seneste logfiler. Hvis du kun vil gemme en uges logfiler, skal du justere dette tal til '7'.

Mens Nginx lader dig ændre andre indstillinger, skal du altid foretage ændringer med omhu. Ændring af indstillinger uden at forstå deres indvirkning kan forårsage uventede resultater. Sørg for at ændre disse indstillinger, så de passer til dine behov uden at forårsage utilsigtede problemer.

Husk, at der ikke er nogen ensartet tilgang til logstyring. Vurder altid dine specifikke omgivelser og krav, før du foretager ændringer.

Afsluttende tanker

I denne guide gennemgik vi opsætningen af ​​Nginx på Debian, der dækker installation, konfiguration og grundlæggende optimering. Ved at kombinere Nginx's effektivitet med Debians stabilitet har du skabt et solidt fundament for din webserver. Husk at holde din server opdateret og udforsk yderligere Nginx-moduler for forbedret funktionalitet. Hvis du støder på problemer, er de stærke fællesskaber omkring Debian og Nginx altid gode ressourcer. Tak fordi du følger med, og godt værtskab!

Joshua James
Følg mig
Seneste indlæg af Joshua James (se alt)

Skriv en kommentar