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:
- 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.
- 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!