Hur man installerar Nginx med Let's Encrypt TLS/SSL på Debian 11 Bullseye

nginx är en öppen källkod, gratis HTTP-servermjukvara. Utöver sina HTTP-serverfunktioner kan NGINX även fungera som en proxyserver för e-post (IMAP, POP3 och SMTP) och en omvänd proxy och lastbalanserare för HTTP-, TCP- och UDP-servrar. Målet bakom NGINX var att skapa den snabbaste webbservern som finns, och att upprätthålla den excellens är fortfarande ett centralt mål för Nginx-projektet. NGINX slår konsekvent Apache och andra servrar i benchmarks som mäter webbserverns prestanda och är nu den mest populära webbservern enligt W3Tech.

I följande handledning kommer du att lära dig hur du installerar Nginx på Debian 11 Bullseye med Debians standardförvare eller det alternativa förvaret av Ondřej Surý med ett gratis TLS/SSL-certifikat från Let's Encrypt.

Förutsättningar

  • Rekommenderat OS: Debian 11 Bullseye
  • Användarkonto: Ett användarkonto med sudo privilegier or root access (su kommando).

Uppdaterar operativsystem

Uppdatera din Debian 11 Bullseye operativsystem för att se till att alla befintliga paket är uppdaterade:

sudo apt update && sudo apt upgrade

Root eller Sudo Access

Som standard, när du skapar ditt konto vid start med Debian jämfört med andra distributioner, får det inte automatiskt sudoers-status. Du måste antingen ha tillgång till root-lösenord att använda kommandot su eller besök vår handledning på Hur man lägger till en användare till Sudoers på Debian.

Installera Nginx

Metod 1. Installera Nginx Stable från Debian Repository

Den första metoden är att installera Nginx från Debians standardförråd, och dessa versioner har visat sig vara stabila och säkra. Om du behöver köra en primär webbserver eller omvänd proxy, rekommenderas ofta att installera Debians förvarspaket.

För att installera Nginx, kör följande kommando.

sudo apt install nginx

Exempel utmatning:

Hur man installerar Nginx med Let's Encrypt TLS/SSL på Debian 11 Bullseye

Typ "Y," tryck sedan på "ENTER-TANGENT" för att fortsätta med installationen.

Kontrollera sedan versionsbygget och om installationen lyckades.

sudo nginx -v

Exempel utmatning:

nginx version: nginx/1.18.0

Metod 2. Installera senaste Nginx Stable eller Mainline från Ondřej Surý Repository

Alternativt, istället för att installera standardversionen av Nginx stabil från Debian 11-förvaret, kan du installera antingen Nginx Stable eller Mainline med hjälp av förvaret från Ondřej Surý, PHP-underhållaren för Debian.

Så här importerar du ett huvudlager:

curl -sSL https://packages.sury.org/nginx-mainline/README.txt | sudo bash -x

Så här importerar du ett stabilt arkiv:

curl -sSL https://packages.sury.org/nginx/README.txt | sudo bash -x

Uppdatera ditt arkiv för att återspegla den nya ändringen:

sudo apt update

Nu när du har installerat Nginx-förvaret och uppdaterade förvarslistan, installera Nginx med följande:

sudo apt install nginx-core nginx-common nginx nginx-full

Exempel utmatning:

Hur man installerar Nginx med Let's Encrypt TLS/SSL på Debian 11 Bullseye

Skriv "Y,” tryck sedan på "ENTER-TANGENT" för att fortsätta och slutföra installationen.

Kontrollera nu att den senaste Nginx från Ondřej Surý-förvaret installerades med hjälp av apt-cache policy kommando. Notera handledningsexempel installerad Nginx Mainline:

apt-cache policy nginx

Exempel utgång för Nginx huvudlinje:

Hur man installerar Nginx med Let's Encrypt TLS/SSL på Debian 11 Bullseye

Observera att du kan bli ombedd att behålla eller ersätta din befintliga / etc / nginx /nginx.conf konfigurationsfilen under installationen. Det rekommenderas att behålla din nuvarande konfigurationsfil genom att trycka på (N). En kopia kommer att göras oavsett underhållarens version, och du kan även kontrollera detta i framtiden.

Du kommer att märka att ytterligare moduler kommer att finnas tillgängliga i den här versionen, framför allt brotli-stöd. Att installera bror, följ stegen nedan.

Öppna nginx.conf konfigurationsfil:

nano /etc/nginx/nginx.conf

Lägg nu till de ytterligare raderna innan i HTTP{} avsnitt:

brotli on;
brotli_comp_level 6;
brotli_static on;
brotli_types application/atom+xml application/javascript application/json application/rss+xml
   application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype
   application/x-font-ttf application/x-javascript application/xhtml+xml application/xml
   font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon
   image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;

Du har nu möjlighet  brotli_comp_level kan ställas mellan 1 (lägst) och 11 (högst). Vanligtvis sitter de flesta servrar i mitten, men om din server är ett monster, ställ in på 11 och övervaka CPU-användningsnivåer.

Testa sedan för att se till att ändringarna fungerar korrekt innan de görs live:

sudo nginx -t

Om ändringarna fungerar korrekt bör du se följande:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Gör nu ändringarna live genom att starta om din server:

sudo systemctl restart nginx
systemctl status nginx

Exempel utmatning:

Hur man installerar Nginx med Let's Encrypt TLS/SSL på Debian 11 Bullseye

Frivillig. UFW-konfiguration

Som standard är UFW inte installerat på Debian 11 Bullseye, till skillnad från andra distributioner som Ubuntu. Men om du använder UFW eller vill ha en tydligare bild av att köra en brandvägg, använd informationen nedan för att konfigurera UFW för Nginx.

För att installera UFW, använd följande kommando.

sudo apt install ufw -y

Aktivera sedan UFW med följande kommando.

sudo ufw enable

Som standard är alla inkommande anslutningar nu blockerade och alla utgående är tillåtna.

Ta sedan reda på vilka program du har installerat genom att ange följande.

sudo ufw app list

Exempel på utdata (Observera att en stor lista kommer att visas över andra applikationer också):

 Available applications:
   Nginx Full
   Nginx HTTP
   Nginx HTTPS

Därefter kan du aktivera Nginx i HTTP (Port 80), HTTPS (Port 443) eller Full, inklusive alla alternativ.

HTTP (port 80):

sudo ufw allow 'Nginx HTTP'

HTTP (port 443):

sudo ufw allow 'Nginx HTTPS'

HTTP & HTTPS (fullständig):

sudo ufw allow 'Nginx FULL'

I handledningen, "Nginx (fullständig)" var aktiverad.

Exempel utmatning:

 Rules updated
 Rules updated (v6)

Bekräfta att brandväggsreglerna är aktiva med följande kommando.

sudo ufw status

Du kommer att se reglerna i utgången.

 Status: active
 To                         Action      From
 --                         ------      ----
 Nginx Full                 ALLOW       Anywhere                  
 Nginx Full (v6)          ALLOW       Anywhere (v6) 

Efter att UFW har konfigurerats, kontrollera att du kan se Nginx-målsidan i din webbläsare.

http://your_server_ip

Om allt fungerar bra bör du landa på följande sida:

Hur man installerar Nginx med Let's Encrypt TLS/SSL på Debian 11 Bullseye

Konfigurera Nginx Server

Du måste ha serverns IP-adress redo för installation. Det enklaste sättet att göra detta är med följande.

Hitta serverns IP-adress

Du måste ha serverns IP-adress redo för installation. Det enklaste sättet att göra detta är med följande.

curl -4 icanhazip.com

Exempel utmatning:

XXX.XXX.XXX.XXX IP address

Konfigurera webbplatsens källkatalog

nginx serverblock (liknande virtuella värdar i Apache) kan kapsla in konfigurationsdetaljer och vara värd för mer än en domän från en enda server. I handledningen kommer du att ställa in en domän som heter example.com, men du borde ersätt detta med ditt domännamn.

När du installerar Nginx skapas den med en förinstallerad www-katalog. Platsen finns på / Var / www / html /.

Skapa först katalogen för example.com, enligt följande, med "-p"-flaggan för att skapa alla nödvändiga överordnade kataloger:

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

För det andra måste du tilldela ägaren till katalogen.

sudo chown -R $USER:$USER /var/www/your_domain/html

För det tredje, tilldela katalogens behörigheter, så att ägaren läser, skriver och kör filerna samtidigt som de endast beviljar läs- och körbehörigheter till grupper och andra. Du kan mata in följande kommando:

sudo chmod -R 755 /var/www/your_domain

Konfigurera Test HTML-sida

För det fjärde, skapa en testsida som du kommer att använda för att bekräfta att din Nginx-server fungerar.

nano /var/www/your_domain/html/index.html

Inuti nanoredigeraren och den nya filen du har skapat. Skriv följande.

<html>
 <head>
  <title>Welcome to your_domain!</title>
 </head>
 <body>
   <h1>Success!  The your_domain server block is working!</h1>
 </body>
</html>

Spara filen CTRL+O, avsluta sedan CTRL + X.

Skapa Nginx-serverblock

Nu kommer du att skapa serverblocket för din webbplats. Vi kommer att skapa ett nytt serverblock enligt följande.

sudo nano /etc/nginx/sites-available/your_domain.conf

Du kan klistra in följande exempelkod i blocket. Detta är bara en Exempel på endast HTTP för grundläggande testning.

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

 root /var/www/your_domain/html;

  index index.html index.htm index.nginx-debian.html;
  server_name your_domain www.your_domain;

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

Exemplet visar att din server lyssnar efter två servernamn, "din_domän" på hamn 80.

Du måste ändra rotkatalogen till namnet/platsen för den rotkatalog du skapar.

Aktiverat Nginx Server Block

För att aktivera Nginx-serverblock måste du länka konfigurationsfilerna från webbplatser som är tillgängliga till webbplatser som är aktiverade i din Nginx-katalog. Detta kan göras med kommandot ln -s enligt följande.

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

Slutlig konfiguration och testkörning

I det sista skedet måste du öppna din standard nginx.conf fil.

sudo nano /etc/nginx/nginx.conf

Och avkommentera följande rad.

server_names_hash_bucket_size 64;

Servernamnets hash-bucket-storlek ändras eftersom det ibland uppstår problem om man lägger till ytterligare servrar.

Testa sedan din Nginx för att se till att den fungerar innan du startar om ordentligt.

sudo nginx -t

Utdata ska vara om inga fel i syntaxen:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Om du har följande ok utdata, starta om Nginx-servern för att ändringarna ska ske.

sudo systemctl restart nginx

Öppna nu din webbläsare och skriv in serverns domännamn. Du bör se att ditt serverblock är live.

Säker Nginx med Let's Encrypt SSL Free Certificate

Helst skulle du vilja köra din Nginx på HTTPS med ett SSL-certifikat. Det bästa sättet att göra detta är att använda Låt oss kryptera, en gratis, automatiserad och öppen certifikatutfärdare som drivs av ideell Internet Security Research Group (ISRG).

Först installerar du certbot-paket enligt följande:

sudo apt install python3-certbot-nginx -y

När det är installerat, kör följande kommando för att starta skapandet av ditt certifikat:

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

Detta är den idealiska installationen som inkluderar forcerad HTTPS 301-omdirigeringar, Strict-Transport-Security-huvud och OCSP-häftning. Se bara till att anpassa e-post och domännamn efter dina krav.

Nu blir din URL HTTPS://www.example.com istället för HTTP://www.example.com.

Observera om du använder den gamla HTTP URLkommer den automatiskt att omdirigera till HTTPS.

Hur man får åtkomst till Nginx-serverloggar

Nginx Logs Directory

Som standard finns alla NGINX-åtkomst-/felloggar, om du inte har ändrat dem, i loggkatalogen, som följande kommando kan se.

Först, navigera till loggkatalogen och lista filer:

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

Du bör hitta följande åtkomst- och felfiler:

Åtkomstlogg:

/var/log/nginx/access.log

Felloggen:

/var/log/nginx/error.log

För att se loggar i realtid i din terminal med kommandot sudo tail -f /location/of/log path.

Exempelvis:

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

Ett annat alternativ är att skriva ut det sista X antalet rader. Till exempel ersätts X med 30 för att skriva ut 30 rader genom att lägga till -n 30 flagga.

sudo tail -f /var/log/nginx/access.log -n 30

Det här är bara några exempel på läsloggar.

Hur man konfigurerar Nginx Log Rotate

Nginx installerar automatiskt loggrotation och konfigurerar den till standard vilket är att rotera dagligen. Du kan ändra dessa inställningar genom att öppna filen som visas nedan.

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

Därefter kommer du att se samma om inte liknande filstruktur. Du kan ändra innehållet här. Oftast kan du ändra hur många loggar som ska sparas eller gå från dagligen till veckovis. Detta bör lämnas på standard om du inte har specifika loggkrav för programvara som fail2ban-övervakning eller liknande.

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

De huvudsakliga inställningarna du förmodligen vill ändra är följande:

  • Dagligen – Detta kan ändras till Weekly, Monthly. Detta bör hållas dagligen, annars blir det svårt att gå igenom loggfilen.
  • Rotera 14 – Det här är hur många loggar som ska sparas och tas bort, så vid max finns det bara 14 loggar, om du bara vill behålla 7 dagars loggar ändra detta till 7.

Det rekommenderas att inte röra några andra inställningar om du inte vet vad du gör.

Hur man uppdaterar Nginx

Nginx kommer att uppdateras som standard när en ny version träffar arkiven. Innan du uppgraderar, rekommenderas det alltid att säkerhetskopiera din Nginx-katalog eller åtminstone nginx.conf fil. Du kan göra båda med följande kommando.

Säkerhetskopiera nginx.conf (rekommenderas starkt):

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

Säkerhetskopiera hela din Nginx-mapp om du föredrar:

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

Kör sedan standarduppdateringskommandot.

sudo apt update

Om en uppgradering är tillgänglig, kör uppgraderingen.

sudo apt upgrade 

Du kan bli tillfrågad om detta under en uppgradering eller installation, men att manuellt göra detta i förväg är ganska viktigt. För stora Nginx-konfigurationer av flera webbplatser skulle säkerhetskopiering till något som Github eller Gitlab vara ännu mer fördelaktigt.

Kommentarer och slutsats

I handledningen har du lärt dig att installera och ställa in grundläggande Nginx-konfiguration på din domän på Debian 11 Bullseye och skapa ett gratis SSL-certifikat med hjälp av Let's Encrypt. Sammantaget är Nginx den mest använda och populära webbapplikationsmjukvaran nu, med varje månad och år som överträffar att ta fler marknadsandelar från Apache.

Några nya utmanare börjar dyka upp, som Openlitespeed, men med tanke på dessa andra webbapplikationer fokuserar du för närvarande på specifika saker som WordPress. Nginx kommer att vara den populära webbapplikationen under en tid.


Inte vad du letade efter? Försök att söka efter ytterligare tutorials.

Lämna en kommentar