Sådan installeres Nginx på Ubuntu 20.04 LTS

Fuld trin-for-trin guide til installation og opsætning af en Nginx-webserver på et Ubuntu 20.04-system

Nginx er en open source og populær omvendt proxy-webserver tilgængelig på flere platforme. Softwaren er udviklet af Igor Sysoev som en løsning på C10K-problemet og først udgivet i 2004. C10K-problemet er problemet med at håndtere 10.000 klienter samtidigt, hvilket var ganske ikke let i begyndelsen af ​​2000'erne.

I denne tutorial ser vi på, hvordan du installerer og konfigurerer Nginx på Ubuntu 20.04 LTS.

Forudsætninger

Et system med Ubuntu 20.04 installeret og en sudo bruger. Derudover skal du ikke have nogen anden webserver, såsom Apache, der kører på port 80 eller 443.

Installerer Nginx

Nginx er tilgængelig i Ubuntu 20.04 repository og passende pakkehåndtering kan bruges til at installere det. Så for at installere Nginx skal du åbne terminalen vha ctrl+alt+t og løb:

sudo apt update && sudo apt installer nginx

Installationen er snart færdig, og Nginx-dæmonen starter automatisk i baggrunden. Så for at kontrollere status for Nginx, kør:

sudo systemctl status nginx

Efter at have kørt ovenstående kommando bør du få Nginx-status som aktiv (kører) i grøn som vist nedenfor.

Konfiguration af Ubuntu Firewall (UFW)

Som standard er de udgående porte HTTP (80) og HTTPS (443) lukket på Ubuntu 20.04. Derudover standard firewall-dæmonen ufw er deaktiveret, da alle porte er lukket.

For at få adgang til Nginx-serveren fra andre systemer skal du således aktivere ufw og sæt den korrekt op for at tillade trafik på havnen 80 og 443. Før du aktiverer ufw, ved, at hvis du opsætter Nginx på en fjernserver, skal du først opdatere ufw regler at tillade ssh ved at køre:

sudo ufw tillade ssh

Ovenstående kommando tillader ssh adgang til fjernserveren uden tilladelse ssh du bliver låst ude af fjernserveren.

Efter aktivering ssh adgang, kan du aktivere ufw firewall-dæmon ved at køre:

sudo ufw aktivere

Nu skal du ændre firewall-reglerne for at tillade HTTP- og HTTPS-porte, så Nginx kan betjene webtrafik. For at ændre reglerne skal du køre:

sudo ufw tillade 'Nginx Full'

Nginx fuld tillader både HTTP- og HTTPS-porte for indgående og udgående trafik fra alle IP-adresser.

Derefter skal du kontrollere, om reglerne er korrekt tilføjet ufw firewall ved at køre kommandoen:

sudo ufw status

Ovenstående kommando vil udlæse de regler, vi føjede til ufw firewall-dæmon.

Opretter forbindelse til Nginx Server

Nu hvor vi har installeret Nginx og konfigureret ufw for at tillade indgående HTTP- og HTTPS-webtrafik, bør du være i stand til at få adgang til Nginx-serveren ved at bruge serverens IP-adresse.

Hvis du ikke kender serverens IP-adresse, skal du bruge kommandoen nedenfor for nemt at hente den.

ip-adr vis eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Når du har fået IP-adressen, skal du indsætte den i din browser og trykke på Enter.

//din-server-ip

Hvis alt var konfigureret korrekt, burde du kunne se 'Velkommen til nginx!' websiden.

Nginx filer og mapper

Nu hvor vi har Nginx installeret og kører på din server. Lad os tage et kig på nogle af de vigtige Nginx-filer og mapper, som du skal bruge til at konfigurere din hjemmeside/webapp.

Webserverindhold

Du kan konfigurere enhver placering, du ønsker, til at være din rodmappe for din serverblok. Nginxs standard HTML er direkte /var/www/html, det er der, hvor 'velkomst'-siden, som vi besøgte tidligere, er placeret.

Andre placeringer, der normalt bruges som rodmappe til domæner, omfatter:

  • /hjem//
  • /var/www/html/
  • /opt/

Nginx konfigurationsfiler

Alle Nginx-konfigurationsfiler er placeret i /etc/nginx vejviser. Lad os se på nogle af de vigtige filer, vi skal bruge for at oprette et grundlæggende domæne.

  • /etc/nginx/nginx.conf: Denne fil indeholder al den konfiguration, der er nødvendig for at køre Nginx.
  • /etc/nginx/sites-available/: Denne mappe har al serverblokkonfiguration af domæner, men er i øjeblikket ikke aktiveret/udrullet og derfor ikke tilgængelig for klienter.
  • /etc/nginx/sites-enabled/: Denne mappe indeholder i øjeblikket aktive/aktiverede domæner, som er tilgængelige for klienter. For at aktivere et domæne skal vi linke domænekonfigurationsfilen fra websteder-tilgængelige til websteder aktiveret vejviser.
  • /etc/nginx/snippets/: I denne mappe kan vi gemme potentielt genbrugelige konfigurationssegmenter. Det sparer meget tid i produktionsmiljøet på grund af det faktum, at det kan gøre segmenter/blokke af konfiguration genanvendelige.

Serverlogs

Nginx logger begivenhederne/aktiviteterne og gemmer dem i logfiler i /var/log/nginx vejviser. Nginx logger aktiviteter i disse filer:

  • /var/log/nginx/access.log: Denne fil logger de klienter, der har tilgået Nginx-serveren. Detaljer inkluderer klientens IP-adresse, tid og dato, browser, der bruges til at få adgang til serveren og OS.
  • /var/log/nginx/error.log: Denne fil logger de fejl, som Nginx-serveren støder på, mens den kører.

Så i dette afsnit har vi kort set på nogle af vigtige Nginx-filer og mapper, der er nok til at komme i gang.

Opsætning af serverblokke

Nu hvor vi har lidt grundlæggende viden om Nginx-filer og server, er vi klar til at opsætte vores egen serverblok. Serverblokke ligner Apache virtuelle værter.

Vi vil se på, hvordan man opretter en serverblok og for at demonstrere, at vi vil bruge eksempel.com som domæne i skabelsesprocessen.

💡 Udskift eksempel.com med dit domænenavn.

Før vi begynder at konfigurere serverblokke, skal vi oprette en mappe, der fungerer som rodmappen for webstedsindhold. Lad os skabe /var/www/example.com/html bibliotek til domænebrug mkdir kommando.

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

Det -s option vil oprette alle de nødvendige overordnede mapper. Det vil sige, det vil skabe eksempel.com en overordnet mappe til html hvis det ikke findes.

Skift ejerskab af mappen med $BRUGER miljøvariabel:

sudo chown -R $USER:$USER /var/www/example.com/html

Dernæst skal du oprette en enkel index.html fil, der tilgås, når du besøger domænet, der konfigureres. Dette er kun til forklarende formål.

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

Indsæt følgende indhold i den fil, vi lige har oprettet på serveren.

  Velkommen til example.com! 

Yo! Eksempel.com er tilgængelig!

Trykke ctrl+o at skrive og gemme index.html fil, og tryk derefter på ctrl+x At forlade nano redaktør.

Nu kan vi endelig gå videre til at oprette en serverblok, så Nginx kan betjene index.html når en bruger går til eksempel.com. Så for at oprette en serverblok skal vi lave en konfigurationsfil med navnet eksempel.com i websteder-tilgængelige vejviser. For at gøre det bruger vi nano og kører:

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

Og derefter enten skriv eller kopier/indsæt følgende konfiguration. Tryk derefter på ctrl+o og indtast for at skrive og gemme. Tryk på samme måde ctrl+x for at lukke nano-editoren.

server { lyt 80; lyt [::]:80; servernavn eksempel.com www.eksempel.dk; root /var/www/example-domain.com/html; indeks index.html; placering / { try_files $uri $uri/ =404; } }

Ovenstående konfiguration ligner standard serverblokkonfiguration, vi har ændret rod sætning for at pege på vores nye rodmappe og ændrede server navn til vores domænenavn. Mens Beliggenhed{} sætningen fungerer som fejl catch-sætning, hvis filer ikke findes, og viser fejl 404 til klienten.

Dernæst kan vi aktivere vores serverblok, så Nginx vil tjene eksempel.com web sider. For at aktivere vores serverblok skal vi oprette et symbollink af eksempel.com fil fra websteder-tilgængelige til websteder aktiveret vejviser. For at gøre det skal du køre:

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

Der oprettes et link i site-aktiveret bibliotek og nu eksempel.com skal være aktiveret. Nu har vi to serverblokke aktiveret på vores Nginx-server, som vil svare på anmodning baseret på Lyt og server_navn direktiver gemt i eksempel.com serverblokkonfiguration.

For at kontrollere, om alle konfigurationsfiler er korrekte, og der ikke er nogen syntaksfejl, skal du køre:

sudo nginx -t

Nu skal du endelig genstarte Nginx for at anvende ændringerne ved at køre følgende kommando:

sudo systemctl genstart nginx

Nginx vil begynde at betjene din serverblok nu, du kan gå til //dit-domænenavn og se din webside live.

Bemærk: For at ovenstående sektion skal fungere, skal du oprette dit eget domæne og erstatte det eksempel.com med dit eget domænenavn. Du skal også konfigurere DNS for dit domæne til at pege på IP-adressen på din Nginx-server.

Afslutningsvis har vi set på, hvordan man installerer Nginx, konfigurer ufw for at tillade fjernadgang til Nginx-serveren, tilsluttet Nginx eksternt, blev bekendt med nogle grundlæggende Nginx-filer og mapper og lærte, hvordan man opsætter en serverblok.

For at vide og lære mere om Nginx, kan du se Nginx wiki.