Sådan installeres Nginx Web Server på Ubuntu 20.04


Nginx er en open source, højtydende webserver, der har en enorm markedsandel i produktionsmiljøer. Det er en let og robust webserver, der mest bruges til at hoste websteder med høj trafik.

Relateret læsning: Sådan installeres Apache-webserver på Ubuntu 20.04

I denne vejledning lærer du, hvordan du installerer Nginx-webserveren og konfigurerer Nginx-serverblokken (virtuelle værter) på Ubuntu 20.04 LTS.

For at komme i gang skal du sikre dig, at du har en forekomst af Ubuntu 20.04 LTS med SSH-adgang og en Sudo-bruger med rodrettigheder. Derudover anbefales en stabil internetforbindelse til installation af Nginx-pakker.

Installation af Nginx på Ubuntu 20.04

1. Opdater serverens pakkelister, før du installerer Nginx.

$ sudo apt update

2. Installer derefter Nginx ved at køre kommandoen:

$ sudo apt install nginx

Når du bliver bedt om at fortsætte, skal du trykke på Y på tastaturet og trykke på ENTER. Installationen udføres på få sekunder.

3. Når Nginx er installeret, kan du starte og kontrollere det ved at køre:

$ sudo systemctl start nginx
$ sudo systemctl status nginx

Outputtet ovenfor angiver tydeligt, at Nginx kører.

4. For at kontrollere versionen af Nginx skal du køre:

$ sudo dpkg -l nginx

Outputtet indikerer, at vi kører Nginx 1.17.10, som er den nyeste version på tidspunktet for nedskrivning af denne artikel.

Åbn Nginx-porte på UFW Firewall

Nu hvor du har Nginx installeret og kørt som forventet, kræves et par justeringer for at få adgang til Nginx via en webbrowser. Hvis du kører UFW-firewall, skal du tillade Nginx-applikationsprofilen.

Der er 3 Nginx-profiler tilknyttet ufw firewall.

  1. Nginx fuld - Dette åbner både port 80 og 443 (til SSL/TLS-kryptering).
  2. Nginx HTTP - Denne åbne eneste port 80 (til ukrypteret webtrafik).
  3. Nginx HTTPS - Åbner kun port 443 (til SSL/TLS-kryptering).

5. Start med at aktivere firewall på Ubuntu 20.04.

$ sudo ufw enable

6. Indtil videre, da vi ikke er på en krypteret server, tillader vi kun Nginx HTTP-profilen, der tillader trafik på port 80.

$ sudo ufw allow 'Nginx HTTP'

7. Genindlæs derefter firewallen, så ændringerne fortsætter.

$ sudo ufw reload

8. Kontroller nu firewallens status for at kontrollere de tilladte profiler.

$ sudo ufw status

Test af Nginx på Ubuntu 20.04

Nginx kører på browseren, som du ville forvente med enhver webserver, og den sikreste måde at teste, om den kører som forventet, er at sende anmodninger via en browser.

9. Gå så ud til din browser og gennemse serverens IP-adresse eller domænenavn. For at kontrollere din servers IP skal du køre ifconfig-kommandoen:

$ ifconfig

10. Hvis du er på en cloud-server, skal du køre curl-kommandoen nedenfor for at hente serverens offentlige IP.

$ curl ifconfig.me

11. I din browsers URL-felt skal du indtaste din servers IP-adresse eller domænenavn og trykke på ENTER.

http://server-IP or domain-name

Du skal få en standard Nginx velkomstside som vist.

Administrer Nginx-processen i Ubuntu 20.04

12. For at stoppe Nginx-webserveren skal du blot køre:

$ sudo systemctl stop nginx

13. For at bringe webserveren op igen, skal du udføre:

$ sudo systemctl start nginx

14. Sådan startes Nginx automatisk ved opstart eller en genstartkørsel:

$ sudo systemctl enable nginx

15. Hvis du vil genstarte webserveren især efter at have foretaget ændringer i konfigurationsfilerne, skal du køre:

$ sudo systemctl restart nginx

16. Alternativt kan du genindlæse for at undgå at tabe forbindelser som vist.

$ sudo systemctl reload nginx

Konfiguration af Nginx Server Block i Ubuntu 20.04

Hvis du planlægger at være vært for mere end et sted på din server, anbefales det stærkt at oprette en Nginx Server-blok. Serverblokken svarer til Apache's virtuelle vært.

Som standard sendes Nginx med sin standardserverblok, der er indstillet til at tjene webindhold i stien /var/www/html .

Vi skal oprette en separat Nginx-blok til at tjene vores domænes indhold. Til denne vejledning skal vi bruge domænet crazytechgeek.info .
For din sag skal du sørge for at erstatte dette med dit eget domænenavn.

17. For at oprette en serverblokfil skal du først oprette en mappe til dit domæne som vist.

$ sudo mkdir -p /var/www/crazytechgeek.info/html

18. Derefter tildeles ejerskabet til den nye mappe ved hjælp af $ USER -variablen.

$ sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

19. Sørg for, at du også tildeler katalogtilladelser i overensstemmelse hermed, så ejeren kan have alle tilladelser (læse, skrive og udføre) og give andre parter kun læse og udføre tilladelser.

$ sudo chmod -R 755 /var/www/crazytechgeek.info

20. Opret en index.html inde i domænekataloget en fil, der indeholder domænets webindhold.

$ sudo vim /var/www/crazytechgeek.info/html/index.html

Indsæt nedenstående indhold i prøvetestfilen.

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Bravo! Your server block is working as expected!</h1>
    </body>
</html>

Gem ændringerne, og afslut filen.

21. For at Nginx webserver skal kunne levere det indhold, du lige har tilføjet, skal du oprette en serverblok med de relevante direktiver. I dette tilfælde oprettede vi en ny serverblok på:

$ sudo vim /etc/nginx/sites-available/crazytechgeek.info

Indsæt den viste konfiguration.

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

        root /var/www/crazytechgeek.info/html;
        index index.html index.htm index.nginx-debian.html;

        server_name crazytechgeek.info  www.crazytechgeek.info;

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

Gem og luk.

22. Aktiver nu serverblokfilen ved at linke den til det sted-aktiverede bibliotek, som Nginx-serveren læser fra ved opstart.

$ sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/

23. For at de ændringer, der skal gennemføres, skal du genstarte Nginx-webserveren.

$ sudo systemctl restart nginx

24. Bare for at være sikker på, at alle konfigurationer er i orden, skal du køre kommandoen:

$ nginx -t

Hvis alle konfigurationer er i orden, skal du få output vist nedenfor:

25. Nginx-webserveren skal nu tjene dit domænes indhold. Gå igen til din browser og gennemse din servers domæne.

http://domain-name

Dit tilpassede indhold i dit domænes bibliotek vises som vist.

Vigtige Nginx-konfigurationsfiler

Før vi afslutter, er det afgørende, at vi undersøger nogle af de vigtige konfigurationsfiler, der er knyttet til Nginx.

  • /etc/nginx/nginx.conf: Dette er hovedkonfigurationsfilen. Du kan ændre indstillingerne for at opfylde din servers krav.
  • /etc/nginx/sites-available: Dette er den mappe, der gemmer serverblokkonfigurationen. Nginx bruger kun serverblokkene, hvis de er linket til det stedbaserede bibliotek.
  • /etc/nginx/sites-enabled: Mappen indeholder Nginx-serverblokke pr. websted, der allerede er aktiveret.

Der er to hovedlogfiler, som du kan bruge til fejlfinding af din Nginx-webserver:

  • /var/log/nginx/access.log: Dette logger alle anmodninger til webserveren.
  • /var/log/nginx/error.log: Dette er fejllogfilen, og den registrerer alle de fejl, som Nginx støder på.

Vi har nået slutningen af denne vejledning. Vi har vist, hvordan du kan installere Nginx på Ubuntu 20.04, og hvordan du kan konfigurere Nginx-serverblokke til at betjene dit domænes indhold. Din feedback er velkommen.