Hur man installerar Nginx på Debian 12, 11 eller 10

Nginx är en kraftfull webbserver känd för sin höga prestanda och låga resursförbrukning. Ursprungligen designad för att hantera C10k-problemet, utmärker den sig i att tillhandahålla statiskt innehåll, lastbalansering och omvänd proxy. Att kombinera Nginx med Debian, känt för sin stabilitet och säkerhet, resulterar i en robust och pålitlig servermiljö.

Nyckelfunktioner i Nginx:

  • Hög prestanda: Hanterar effektivt flera samtidiga anslutningar.
  • Låg resursanvändning: Optimerad för att köras med minimalt minne och CPU.
  • Lastbalansering: Fördelar trafik över flera servrar för förbättrad prestanda.
  • Omvänd proxy: Vidarebefordrar klientförfrågningar till backend-servrar sömlöst.
  • Hantering av statiskt innehåll: Serverar statiska filer snabbt och effektivt.
  • Säkerhetsfunktioner: Stöder SSL/TLS för krypterad kommunikation.
  • Flexibilitet: Stöder protokoll som HTTP, HTTPS, SMTP, POP3 och IMAP.

Fördelar med att kombinera Nginx med Debian:

  • Stabilitet: Debians rykte om stabilitet säkerställer att din server förblir pålitlig.
  • Säkerhet: Debians robusta säkerhetsåtgärder skyddar din Nginx-server från sårbarheter.
  • Enkel användning: Debians pakethanteringssystem förenklar installation och underhåll av Nginx.
  • Community Support: Nginx och Debian har starka gemenskaper som tillhandahåller omfattande resurser och stöd.

När du går över till installationen kommer du att upptäcka att Debians stabilitet paras perfekt med Nginx effektivitet, vilket skapar en idealisk miljö för dina webbapplikationer. Låt oss fördjupa oss i stegen som krävs för att installera och konfigurera Nginx på en Debian-server.

Förbereda ditt system före Nginx-installation

Se till att ditt system är uppdaterat innan du installerar Nginx. Detta förhindrar potentiella konflikter under installationen och minskar risken för kompatibilitetsproblem och säkerhetsbrister.

För att uppdatera dina systempaket, kör följande:

sudo apt update && sudo apt upgrade

Detta kommando hämtar listan över tillgängliga uppdateringar (via apt update) och uppgraderar sedan de nuvarande programvarupaketen till deras senaste versioner (med apt upgrade).

Installera standarden NGINX Web Server

Som standard är NGINX tillgängligt i Debians arkiv. Detta gör installationsprocessen enkel.

Kör följande kommando för att installera nginx:

sudo apt install nginx

De apt install kommandot säger åt APT pakethanteringsverktyget (en del av Debiansystemet) att installera NGINX-paketet.

Valfritt: Installera NGINX-fullversionen

NGINX erbjuder en nginx-full version med ytterligare moduler som inte finns i standardversionen. Om du behöver mer funktionalitet, installera den fullständiga versionen av nginx:

sudo apt install nginx-full

Valfritt: Installera NGINX-Extras-versionen

För en ännu bredare funktionsuppsättning, överväg nginx-extras version. Att installera:

sudo apt install nginx-extras

Verifiera NGINX-installationen

Efter installationen, se till att NGINX körs korrekt.

Kontrollera NGINX-tjänstens status med följande:

systemctl status nginx

NGINX fungerar korrekt om utgången visar "aktiv (kör)." Om inte, kommer utgången att detaljera felet för felsökning.

Om NGINX inte är aktiverat, använd:

sudo systemctl enable nginx --now

Konfigurera UFW-brandvägg för Nginx

UFW, eller Uncomplicated Firewall, tillhandahåller ett lättanvänt gränssnitt för att hantera iptables brandväggsregler. Det är inte installerat på Debian som standard, men du kan hämta det från standardförvaren. Om din server har offentlig åtkomst bör du ställa in UFW-regler för säkerhet.

Installera UFW-brandväggen

Om UFW inte redan är installerat på ditt system kan du göra det genom att utföra följande kommando:

sudo apt install ufw

Aktivera UFW-brandväggen

När installationen är klar kan du aktivera UFW genom att köra följande kommando:

sudo ufw enable

UFW:s standardinställningar blockerar alla inkommande anslutningar och tillåter alla utgående. Detta innebär att det stoppar oönskad systemåtkomst men låter ditt system nå omvärlden.

Lista installerade applikationer

UFW använder applikationsprofiler, som är uppsättningar av regler för specifika applikationer. För att se installerade program som har UFW-profiler, kör:

sudo ufw app list

Konfigurera UFW-regler för NGINX

Beroende på dina behov kan du konfigurera UFW för att tillåta NGINX-anslutningar via HTTP (Port 80), HTTPS (Port 443) eller båda.

Endast för HTTP (port 80):

sudo ufw allow 'Nginx HTTP'

Endast HTTPS (Port 443):

sudo ufw allow 'Nginx HTTPS'

Både HTTP och HTTPS:

sudo ufw allow 'Nginx Full'

Verifiera brandväggsregler

För att bekräfta att dina regler är på plats, kontrollera de aktiva brandväggsreglerna:

sudo ufw status

Testar NGINX-konfiguration

När du har ställt in UFW, se till att du kan se NGINX-målsidan. Gå till din servers IP-adress i din webbläsare:

http://your_server_ip

Eller, för lokala inställningar:

http://localhost

Anta att du ser NGINX standardsida; din konfiguration fungerar. Detta avslutar brandväggsinstallationen för NGINX på Debian.

Skapa NGINX-serverblock

Precis som Apaches virtuella värdar låter NGINX-serverblock dig vara värd för flera domäner från en server. Varje domän har sina konfigurationsinställningar. För den här guiden, ersätt "example.com" med ditt faktiska domännamn.

Skapa en katalog för din domän

Skapa en katalog för din domän. Denna katalog lagrar din webbplats filer:

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

Tilldela ägarskap till Nginx-katalogen

Tilldela katalogägandeskap till "www-data"-användaren och gruppen, som NGINX vanligtvis använder:

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

Skapa en Nginx Test HTML-sida

Skapa en test-HTML-sida i din domänkatalog för att bekräfta din NGINX-inställning:

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

Lägg till följande HTML-kod:

<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 klistrat in koden i nanoredigeraren trycker du på CTRL+O för att spara ändringarna och sedan på CTRL+X för att avsluta redigeraren.

Skapa ett NGINX-serverblock för testsida

Konfigurera ett serverblock för din webbplats:

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

Lägg till följande 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;
 }
}

Denna konfiguration talar om för NGINX att lyssna efter inkommande anslutningar på port 80 för båda example.com och www.example.com. Se till att byta ut root direktiv med katalogsökvägen du skapade tidigare.

Aktivera NGINX-serverblocket via symbollänk

Aktivera ditt serverblock genom att skapa en symbolisk länk från katalogen för webbplatser som är tillgängliga till den webbplatsaktiverade katalogen:

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

Slutlig konfiguration och testkörning

Slutligen kommer vi att redigera standard NGINX-konfigurationsfilen och utföra en testkörning för att säkerställa att allt fungerar som förväntat.

Redigera NGINX-konfigurationsfilen

Öppna nginx.conf fil:

sudo nano /etc/nginx/nginx.conf

Leta efter linjen server_names_hash_bucket_size 64; inom http {} blockera och avkommentera den.

Detta direktiv tillåter NGINX att hantera långa domännamn och ett större antal servernamn genom att allokera mer minne för detta ändamål. Var dock försiktig så att du inte ställer in detta värde för högt, eftersom det kan förbruka mer minne än vad som behövs.

Spara ändringarna och avsluta editorn genom att trycka på CTRL+O och CTRL+X.

Testa din NGINX-konfiguration

Innan du startar om NGINX är det en god praxis att verifiera att din konfigurationssyntax är korrekt. Kör följande kommando för att starta en testkörning:

sudo nginx -t

Om din konfiguration är korrekt kommer du att se denna utdata:

nginx: konfigurationsfilen /etc/nginx/nginx.conf-syntaxen är ok nginx: konfigurationsfilen /etc/nginx/nginx.conf-testet lyckades

Dessa meddelanden indikerar att din NGINX-konfiguration har validerats.

Verifierar ditt serverblock

Öppna din domän i en webbläsare för att säkerställa att ditt serverblock fungerar korrekt. Du bör se testsidan som bekräftar att ditt serverblock är aktivt.

Ytterligare Nginx-kommandon

Förbättra filsäkerheten på din webbserver

Säkerhet för filer och mappar på din webbserver är av största vikt. Undvik alltför tillåtande åtkomsträttigheter. Använd dessa kommandon för att ställa in korrekta behörigheter för alla filer och kataloger i din webroot.

Kom ihåg att byta ut /var/www/example.com/ med din webbrotsväg:

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

Dessa kommandon anger läs- och exekveringsbehörigheter för kataloger och läs- och skrivbehörigheter för filer för ägaren. Grupper och andra får skrivskyddad åtkomst. Justera dessa behörigheter som din applikation kräver.

Nginx Security med Let's Encrypt Free SSL-certifikat

Att använda HTTPS-protokollet säkerställer webbserverns säkerhet. Let's Encrypt tillhandahåller ett gratis SSL-certifikat. Installera certbot-paketet med:

sudo apt install python3-certbot-nginx

Starta sedan certifikatskapandet:

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

Ersätt med din e-postadress och ditt domännamn. Detta kommando ställer in HTTPS med de nödvändiga säkerhetsfunktionerna.

Ställa in automatisk certifikatförnyelse

Låt oss kryptera certifikat varar i 90 dagar. Ställ in automatiska förnyelser med Certbot-skriptet. Testa processen:

sudo certbot renew --dry-run

Om det lyckas, lägg till förnyelsekommandot i crontab:

sudo crontab -e

Inkludera denna rad för att förnya dagligen vid midnatt:

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

Nginx-serverloggar

Övervaka dina serverloggar för en välskött webbserver. Som standard finns loggar i /var/log/nginx. Lista dem med:

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

De mest relevanta loggfilerna är access.log och error.log. För att övervaka loggar i realtid, använd tail -f kommando följt av sökvägen till loggen:

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

Uppdatera Nginx

Innan du uppdaterar din Nginx-server är det klokt att skapa en säkerhetskopia av dina nuvarande konfigurationer. För att säkerhetskopiera din huvudsakliga nginx.conf fil, använd följande kommando:

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

I de fall du har anpassat din Nginx-inställning i stor utsträckning, kanske du vill säkerhetskopiera hela din Nginx-katalog:

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

Med dina konfigurationer säkert säkerhetskopierade kan du nu fortsätta att uppdatera Nginx:

sudo apt update
sudo apt upgrade

Att regelbundet säkerhetskopiera dina konfigurationer är god praxis, särskilt i komplexa inställningar.

Ta bort Nginx

Om du inte längre behöver Nginx på din server kan du ta bort det genom att följa dessa steg. Se först till att Nginx-tjänsten är stoppad:

sudo systemctl disable nginx --now

Ta sedan bort Nginx-paketet helt och hållet:

sudo apt remove nginx

Du kan fortfarande hitta rester av Nginx-konfigurationer i /etc/nginx katalog. För att ta bort dessa, använd kommandot:

sudo rm -R /etc/nginx/

Kom ihåg att detta tar bort alla dina anpassade konfigurationsfiler, så se till att du har allt du behöver säkerhetskopierat innan du fortsätter med det här steget.

Konfigurera loggrotationsparametrar i Nginx

Nginx inkluderar en funktion för daglig loggrotation som standard. Du kan dock anpassa dessa inställningar baserat på dina behov.

Gå till konfigurationsfil för loggrotation

För att ändra inställningarna för loggrotation måste du komma åt konfigurationsfilen. Så här kan du öppna den med nanotextredigeraren:

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

När du öppnar filen ser du innehåll som liknar följande. Justera direktiven i den här filen för att passa dina behov av logglagring och rotation, främst om du använder övervakningsverktyg som fail2ban.

Exempel på konfigurationsfil för rotationslogg

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

Förstå primära konfigurationsparametrar

Inom den här konfigurationen fokuserar systemadministratörer vanligtvis på två huvudinställningar:

  1. Dagligen: Denna inställning ställer in loggens rotationsfrekvens. Även om det är standard på "dagligen", kan du ändra det till "veckovis" eller "månatlig". Men dagliga rotationer förenklar vanligtvis logghanteringen.
  2. Vrid 14: Detta nummer talar om för systemet hur många loggfiler som ska behållas. Till exempel, en inställning på '14' behåller de 14 senaste loggarna. Om du bara vill lagra en veckas loggar, justera detta nummer till '7'.

Medan Nginx låter dig ändra andra inställningar, gör alltid ändringar med försiktighet. Att ändra inställningar utan att förstå deras inverkan kan orsaka oväntade resultat. Se till att du ändrar dessa inställningar så att de passar dina behov utan att orsaka oavsiktliga problem.

Kom ihåg att det inte finns någon enhetlig metod för logghantering. Bedöm alltid din specifika miljö och dina krav innan du gör ändringar.

Avslutande tankar

I den här guiden gick vi igenom installationen av Nginx på Debian, som täckte installation, konfiguration och grundläggande optimering. Genom att kombinera Nginx effektivitet med Debians stabilitet har du skapat en solid grund för din webbserver. Kom ihåg att hålla din server uppdaterad och utforska ytterligare Nginx-moduler för förbättrad funktionalitet. Om du stöter på några problem är de starka gemenskaperna runt Debian och Nginx alltid fantastiska resurser. Tack för att du följer med och trevlig värd!

Joshua James
Följ mig
Senaste inläggen av Joshua James (se alla)

Lämna en kommentar