Hur man installerar Nginx med Let's Encrypt TLS/SSL på Ubuntu 20.04

nginx är en gratis HTTP-serverprogramvara med öppen källkod. 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 lär du dig att installera Nginx på Ubuntu 20.04 LTS med hjälp av standard Ubuntu-förvaret eller den alternativa PPA av Ondřej Surý med ett gratis TLS/SSL-certifikat från Let's Encrypt.

Förutsättningar

  • Rekommenderat OS: ubuntu 20.04 eller högre
  • Användarkonto: Ett användarkonto med sudo- eller root-åtkomst.

Uppdaterar operativsystem

Uppdatera din Ubuntu operativsystem för att se till att alla befintliga paket är det aktuell:

sudo apt update && sudo apt upgrade

Root eller Sudo Access

Som standard gav kontot som skapades med Ubuntu sudo-status. Anta ändå att du måste tillhandahålla ytterligare konton sudo/root-åtkomst. I så fall måste du 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å Ubuntu.

Installera Nginx

Metod 1. Installera Nginx Stable från Ubuntu Repository

Den första metoden är att installera Nginx från Ubuntus 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 Ubuntu-förvarspaketen.

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å Ubuntu 20.04

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ý PPA

Alternativt, istället för att installera standardversionen av Nginx stabil från Ubuntu 20.04:s arkiv, kan du installera antingen Nginx Stable eller Mainline med PPA från Ondřej Surý, PHP-underhållaren för Debian.

Installera en av följande PPA:er med följande kommando:

Installera senaste Nginx (STABIL):

sudo add-apt-repository ppa:ondrej/nginx-stable -y && sudo apt update

Installera senaste Nginx (MAINLINE):

sudo add-apt-repository ppa:ondrej/nginx-mainline -y && sudo apt update

Nu när du har installerat PPA 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å Ubuntu 20.04

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 på utdata (från huvudlinjen):

nginx version: nginx/1.18.0

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å Ubuntu 20.04

Observera att du kan bli ombedd att behålla eller ersätta din befintliga / etc / nginx /nginx.conf konfigurationsfil under installationen om du hade Nginx installerat tidigare. 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
sudo systemctl status nginx

Exempel utmatning:

Hur man installerar Nginx med Let's Encrypt TLS/SSL på Ubuntu 20.04

UFW-konfiguration

Som standard är UFW installerat på Ubuntu 20.04. Om du använder UFW eller vill ha en tydligare bild av hur du kör en brandvägg, använd informationen nedan för att konfigurera UFW för Nginx.

Om UFW inte är installerat, installera om brandväggen med 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 omfattande 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å Ubuntu 20.04

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

Om ett fel uppstår behöver du mer än troligt installera curl-paketet på ditt system. Kör snabbt detta kommando:

sudo apt install curl -y

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.

Aktivera 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 Internetläsare och skriv in serverns domännamn. Du bör se att ditt serverblock är live.

Hur man installerar Nginx med Let's Encrypt TLS/SSL på Ubuntu 20.04

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 flaggor.

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 en grundläggande Nginx-konfiguration på din domän på Ubuntu 20.04 LTS 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, där varje månad och år ö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