Fullständig steg-för-steg-guide för att installera och konfigurera en Nginx-webbserver på ett Ubuntu 20.04-system
Nginx är en öppen källkod och populär webbserver med omvänd proxy tillgänglig på flera plattformar. Programvaran har utvecklats av Igor Sysoev som en lösning på C10K-problemet och släpptes först 2004. C10K-problemet är problemet med att hantera tiotusen klienter samtidigt, vilket inte var lätt i början av 2000-talet.
I den här handledningen tittar vi på hur man installerar och ställer in Nginx på Ubuntu 20.04 LTS.
Förutsättningar
Ett system med Ubuntu 20.04 installerat och en sudo
användare. Dessutom behöver du inte ha någon annan webbserver som Apache som körs på port 80 eller 443.
Installerar Nginx
Nginx är tillgängligt i Ubuntu 20.04 repository och benägen
pakethanteraren kan användas för att installera den. Så för att installera Nginx, öppna terminalen med ctrl+alt+t
och kör:
sudo apt uppdatera && sudo apt installera nginx
Installationen kommer snart att slutföras och Nginx-demonen startar automatiskt i bakgrunden. Så för att kontrollera statusen för Nginx, kör:
sudo systemctl status nginx
Efter att ha kört kommandot ovan bör du få Nginx-status som aktiv (kör)
i grönt som ses nedan.
Konfigurera Ubuntu-brandväggen (UFW)
Som standard är de utgående portarna HTTP (80) och HTTPS (443) stängda på Ubuntu 20.04. Dessutom standardbrandväggsdemonen ufw
är inaktiverat eftersom alla portar är stängda.
För att komma åt Nginx-servern från andra system måste du alltså aktivera ufw
och ställ in den korrekt för att tillåta trafik på hamn 80
och 443
. Innan du aktiverar ufw
, vet att om du ställer in Nginx på en fjärrserver, uppdatera först ufw
regler att tillåta ssh
genom att köra:
sudo ufw tillåt ssh
Ovanstående kommando tillåter ssh
åtkomst till fjärrservern, utan tillåtelse ssh
du kommer att låsas ute från fjärrservern.
Efter aktivering ssh
åtkomst kan du aktivera ufw
brandväggsdemon genom att köra:
sudo ufw aktivera
Nu måste du ändra brandväggsreglerna för att tillåta HTTP- och HTTPS-portar så att Nginx kan betjäna webbtrafik. För att ändra reglerna, kör:
sudo ufw tillåter 'Nginx Full'
Nginx Full
tillåter både HTTP- och HTTPS-portar för inkommande och utgående trafik från alla IP-adresser.
Efter det, kontrollera om reglerna är korrekt tillagda ufw
brandvägg genom att köra kommandot:
sudo ufw status
Ovanstående kommando kommer att mata ut reglerna vi lagt till ufw
brandväggsdemon.
Ansluter till Nginx Server
Nu när vi har installerat Nginx och konfigurerat ufw
för att tillåta inkommande HTTP- och HTTPS-webbtrafik bör du kunna komma åt Nginx-servern genom att använda serverns IP-adress.
Om du inte känner till serverns IP-adress, använd kommandot nedan för att enkelt hämta den.
ip-adress visa eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
När du har fått IP-adressen, klistra in den i din webbläsare och tryck på Retur.
//din-server-ip
Om allt var korrekt konfigurerat bör du kunna se webbsidan "Välkommen till nginx!".
Nginx-filer och kataloger
Nu när vi har Nginx installerat och kört på din server. Låt oss ta en titt på några av de viktiga Nginx-filerna och katalogerna som du måste använda för att konfigurera din webbplats/webbapp.
Webserverinnehåll
Du kan konfigurera vilken plats du vill ska vara din rotkatalog för ditt serverblock. Nginx standard HTML direkt är /var/www/html
, det är där "välkomstsidan" som vi besökte tidigare finns.
Andra platser som vanligtvis används som rotkatalog för domäner inkluderar:
/Hem//
/var/www/html/
/välja/
Nginx konfigurationsfiler
Alla Nginx-konfigurationsfiler finns i /etc/nginx
katalog. Låt oss titta på några av de viktiga filer vi behöver för att skapa en grundläggande domän.
/etc/nginx/nginx.conf
: Den här filen innehåller all konfiguration som behövs för att köra Nginx./etc/nginx/sites-available/
: Den här katalogen har alla serverblockskonfigurationer för domäner, men är för närvarande inte aktiverade/distribuerade och därför inte åtkomliga för klienter./etc/nginx/sites-enabled/
: Denna katalog innehåller för närvarande aktiva/aktiverade domäner som är tillgängliga för klienter. För att aktivera en domän måste vi länka domänens konfigurationsfil frånwebbplatser-tillgängliga
tillwebbplatsaktiverade
katalog./etc/nginx/snippets
/: I den här katalogen kan vi lagra potentiellt återanvändbara konfigurationssegment. Det sparar mycket tid i produktionsmiljön på grund av att det kan göra segment/block av konfiguration återanvändbara.
Serverloggar
Nginx loggar händelserna/aktiviteterna och lagrar dem i loggfiler i /var/log/nginx
katalog. Nginx loggar aktiviteter i dessa filer:
/var/log/nginx/access.log
: Den här filen loggar klienterna som har åtkomst till Nginx-servern. Detaljer inkluderar klientens IP-adress, tid och datum, webbläsare som används för att komma åt servern och operativsystemet./var/log/nginx/error.log
: Den här filen loggar de fel som påträffades av Nginx-servern när den körs.
Så i det här avsnittet har vi kort tittat på några viktiga Nginx-filer och kataloger som räcker för att komma igång.
Konfigurera serverblock
Nu när vi har lite grundläggande kunskap om Nginx-filer och server, är vi redo att sätta upp vårt eget serverblock. Serverblock liknar Apaches virtuella värdar.
Vi kommer att titta på hur man skapar ett serverblock och för att visa att vi kommer att använda exempel.com
som domän i skapelseprocessen.
💡 Byt ut exempel.com
med ditt domännamn.
Innan vi börjar konfigurera serverblock måste vi skapa en katalog som ska fungera som rotkatalog för webbplatsinnehåll. Låt oss skapa /var/www/example.com/html
katalog för domänanvändning mkdir
kommando.
sudo mkdir -p /var/www/example.com/html
De -s
alternativet kommer att skapa alla överordnade kataloger som behövs. Det vill säga, det kommer att skapa exempel.com
en överordnad katalog till html
om det inte finns.
Ändra ägande av katalogen med $USER
miljöfaktor:
sudo chown -R $USER:$USER /var/www/example.com/html
Skapa sedan en enkel index.html
fil som kommer att nås när du besöker domänen som konfigureras. Detta är endast i förklarande syfte.
nano /var/www/example.com/html/index.html
Klistra in följande innehåll i filen vi just skapade på servern.
Välkommen till example.com! Yo! Exempel.com är tillgänglig!
Tryck ctrl+o
att skriva och spara index.html
fil och tryck sedan på ctrl+x
att lämna nano
redaktör.
Nu kan vi äntligen gå vidare till att skapa ett serverblock, så att Nginx kan tjäna index.html
när någon användare går till exempel.com
. Så för att skapa ett serverblock måste vi skapa en konfigurationsfil med namnet exempel.com
i webbplatser-tillgängliga
katalog. För att göra det använder vi nano och kör:
sudo nano /etc/nginx/sites-available/example.com
Och sedan, antingen skriv eller kopiera/klistra in följande konfiguration. Tryck sedan på ctrl+o
och skriv in för att skriva och spara. Tryck på samma sätt ctrl+x
för att stänga nanoredigeraren.
server { lyssna 80; lyssna [::]:80; servernamn exempel.com www.exempel.com; root /var/www/example-domain.com/html; index index.html; plats / { try_files $uri $uri/ =404; } }
Ovanstående konfiguration liknar standardserverblockkonfigurationen, vi har ändrat rot
uttalande för att peka på vår nya rotkatalog och ändrade server namn
till vårt domännamn. Medan plats{}
uttalande fungerar som felfångstsats om filer inte hittas och visar fel 404 för klienten.
Därefter kan vi aktivera vårt serverblock så att Nginx kommer att tjäna exempel.com
webbsidor. För att aktivera vårt serverblock måste vi skapa en symbollänk av exempel.com
fil från webbplatser-tillgängliga
till webbplatsaktiverade
katalog. För att göra det, kör:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled
En länk kommer att skapas i webbplatsaktiverad
katalog och nu exempel.com
bör vara aktiverad. Nu har vi två serverblock aktiverade på vår Nginx-server som kommer att svara på begäran baserat på lyssna
och sever_name
direktiv sparade i exempel.com
konfiguration av serverblock.
För att kontrollera om alla konfigurationsfiler är korrekta och inget syntaxfel finns, kör:
sudo nginx -t
Starta nu äntligen om Nginx för att tillämpa ändringarna genom att köra följande kommando:
sudo systemctl starta om nginx
Nginx kommer att börja betjäna ditt serverblock nu, du kan gå till //ditt-domännamn
och se din webbsida live.
Notera: För att avsnittet ovan ska fungera måste du skapa din egen domän och byta ut den exempel.com
med ditt eget domännamn. Du måste också konfigurera DNS för din domän för att peka på IP-adressen för din Nginx-server.
Avslutningsvis har vi tittat på hur man installerar Nginx, konfigurera ufw
för att tillåta fjärråtkomst till Nginx-servern, ansluten till Nginx på distans, blev bekant med några grundläggande Nginx-filer och kataloger och lärde sig hur man ställer in ett serverblock.
För att veta och lära dig mer om Nginx, kanske du vill se Nginx wiki.