Nginx installeren op Ubuntu 20.04 LTS

Volledige stapsgewijze handleiding voor het installeren en instellen van een Nginx-webserver op een Ubuntu 20.04-systeem

Nginx is een open-source en populaire reverse proxy-webserver die beschikbaar is op meerdere platforms. De software is ontwikkeld door Igor Sysoev als een oplossing voor het C10K-probleem en voor het eerst uitgebracht in 2004. Het C10K-probleem is het probleem van het gelijktijdig afhandelen van tienduizend clients, wat in het begin van de jaren 2000 niet eenvoudig was.

In deze tutorial bekijken we hoe je Nginx installeert en instelt op Ubuntu 20.04 LTS.

Vereisten

Een systeem met Ubuntu 20.04 geïnstalleerd en een sudo gebruiker. Bovendien hoeft u geen andere webserver zoals Apache op poort 80 of 443 te hebben.

Nginx installeren

Nginx is beschikbaar in de Ubuntu 20.04-repository en geschikt pakketbeheerder kan worden gebruikt om het te installeren. Dus, om Nginx te installeren, open de terminal met ctrl+alt+t en loop:

sudo apt update && sudo apt install nginx

De installatie wordt binnenkort voltooid en de Nginx-daemon start automatisch op de achtergrond. Dus, om de status van Nginx te controleren, voer je uit:

sudo systemctl status nginx

Na het uitvoeren van de bovenstaande opdracht zou je de Nginx-status moeten krijgen als actief (lopen) in het groen zoals hieronder te zien is.

Ubuntu-firewall (UFW) configureren

Standaard zijn de uitgaande poorten HTTP (80) en HTTPS (443) gesloten op Ubuntu 20.04. Bovendien is de standaard firewall-daemon ufw is uitgeschakeld omdat alle poorten zijn gesloten.

Dus om toegang te krijgen tot de Nginx-server vanaf andere systemen, moet je de ufw en stel het correct in om verkeer op poort toe te staan 80 en 443. Voordat u inschakelt: ufw, weet dat als je Nginx instelt op een externe server, je eerst de . update ufw regels om toe te staan ssh door rennen:

sudo ufw ssh . toestaan

Met het bovenstaande commando kan de ssh toegang tot de externe server, zonder toestemming ssh u wordt buitengesloten van de externe server.

Na inschakelen ssh toegang, kunt u de ufw firewall-daemon door het volgende uit te voeren:

sudo ufw inschakelen

Nu moet je de firewallregels wijzigen om HTTP- en HTTPS-poorten toe te staan, zodat Nginx webverkeer kan bedienen. Voer het volgende uit om de regels te wijzigen:

sudo ufw staat 'Nginx Full' toe

Nginx vol staat zowel HTTP- als HTTPS-poorten toe voor inkomend en uitgaand verkeer van alle IP-adressen.

Controleer daarna of de regels correct zijn toegevoegd aan ufw firewall door de opdracht uit te voeren:

sudo ufw-status

De bovenstaande opdracht geeft de regels weer waaraan we hebben toegevoegd: ufw firewall-daemon.

Verbinding maken met de Nginx-server

Nu we Nginx hebben geïnstalleerd en geconfigureerd ufw om inkomend HTTP- en HTTPS-webverkeer toe te staan, moet u toegang hebben tot de Nginx-server met behulp van het IP-adres van de server.

Als u het IP-adres van de server niet weet, gebruikt u de onderstaande opdracht om het eenvoudig op te halen.

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

Zodra je het IP-adres hebt, plak je het in je browser en druk je op enter.

//uw-server-ip

Als alles correct is geconfigureerd, zou je de webpagina 'Welkom bij nginx!' moeten kunnen zien.

Nginx-bestanden en -mappen

Nu we Nginx op uw server hebben geïnstalleerd en draaien. Laten we eens kijken naar enkele van de belangrijke Nginx-bestanden en -mappen die u moet gebruiken om uw website/web-app te configureren.

Webserver Inhoud

U kunt elke locatie configureren die u wilt als uw hoofdmap voor uw serverblok. De standaard HTML van Nginx is direct /var/www/html, het is waar de 'welkomst'-pagina die we eerder hebben bezocht, zich bevindt.

Andere locaties die gewoonlijk worden gebruikt als hoofdmap voor domeinen zijn onder meer:

  • /huis//
  • /var/www/html/
  • /opt/

Nginx-configuratiebestanden

Alle Nginx-configuratiebestanden bevinden zich in: /etc/nginx map. Laten we eens kijken naar enkele van de belangrijke bestanden die we nodig hebben om een ​​basisdomein in te stellen.

  • /etc/nginx/nginx.conf: Dit bestand bevat alle configuratie die nodig is om Nginx uit te voeren.
  • /etc/nginx/sites-beschikbaar/: Deze directory heeft alle serverblokconfiguraties van domeinen, maar is momenteel niet ingeschakeld/geïmplementeerd en dus niet toegankelijk voor clients.
  • /etc/nginx/sites-enabled/: Deze map bevat momenteel actieve/ingeschakelde domeinen die toegankelijk zijn voor clients. Om een ​​domein in te schakelen, moeten we het domeinconfiguratiebestand koppelen van: sites-beschikbaar naar de sites-enabled map.
  • /etc/nginx/fragmenten/: In deze map kunnen we mogelijk herbruikbare configuratiesegmenten opslaan. Het bespaart veel tijd in de productieomgeving doordat het segmenten/blokken van configuratie herbruikbaar kan maken.

Serverlogboeken

Nginx logt de gebeurtenissen/activiteiten en slaat ze op in logbestanden in de /var/log/nginx map. De Nginx logt activiteiten in deze bestanden:

  • /var/log/nginx/access.log: Dit bestand registreert de clients die toegang hebben gekregen tot de Nginx-server. Details omvatten het IP-adres van de client, tijd en datum, browser die wordt gebruikt om toegang te krijgen tot de server en het besturingssysteem.
  • /var/log/nginx/error.log: Dit bestand registreert de fouten die de Nginx-server heeft ondervonden tijdens het uitvoeren.

In deze sectie hebben we dus kort gekeken naar enkele belangrijke Nginx-bestanden en -mappen die voldoende zijn om aan de slag te gaan.

Serverblokken instellen

Nu we wat basiskennis hebben over Nginx-bestanden en -server, zijn we klaar om ons eigen serverblok op te zetten. Serverblokken zijn vergelijkbaar met virtuele Apache-hosts.

We zullen kijken hoe we een serverblok kunnen maken en om te demonstreren dat we zullen gebruiken voorbeeld.com als domein in creatieproces.

💡 Vervangen voorbeeld.com met uw domeinnaam.

Voordat we beginnen met het configureren van serverblokken, moeten we een map maken die als hoofdmap voor website-inhoud dient. Laten we creëren /var/www/voorbeeld.com/html directory voor domein met behulp van mkdir opdracht.

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

De -P optie zal alle benodigde bovenliggende mappen maken. Dat wil zeggen, het zal creëren voorbeeld.com een bovenliggende map naar html als het niet bestaat.

Verander het eigendom van de directory met de $USER omgevingsvariabele:

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

Maak vervolgens een eenvoudige index.html bestand dat wordt geopend wanneer u het domein bezoekt dat wordt geconfigureerd. Dit is alleen voor verklarende doeleinden.

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

Plak de volgende inhoud in het bestand dat we zojuist op de server hebben gemaakt.

  Welkom op voorbeeld.com! 

Hé! De voorbeeld.com is toegankelijk!

druk op ctrl+o om de . te schrijven en op te slaan index.html bestand en druk vervolgens op ctrl+x verlaten nano editor.

Nu kunnen we eindelijk overgaan tot het maken van een serverblok, zodat Nginx de . kan bedienen index.html wanneer een gebruiker naar voorbeeld.com. Dus om een ​​serverblok te maken, moeten we een configuratiebestand maken met de naam voorbeeld.com in sites-beschikbaar map. Om dit te doen, gebruiken we nano en voeren we uit:

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

En typ of kopieer/plak vervolgens de volgende configuratie. Druk vervolgens op ctrl+o en voer in om te schrijven en op te slaan. Druk op dezelfde manier op ctrl+x om de nano-editor te sluiten.

server { luister 80; luister [::]:80; servernaam voorbeeld.com www.voorbeeld.com; root /var/www/voorbeelddomein.com/html; indexindex.html; locatie / {try_files $uri $uri/ =404; } }

De bovenstaande configuratie is vergelijkbaar met de standaard serverblokconfiguratie, we hebben dit gewijzigd wortel statement om naar onze nieuwe root-directory te verwijzen en wijzigde de server naam naar onze domeinnaam. Terwijl de plaats{} statement dient als error catch-statement als er geen bestanden worden gevonden en geeft fout 404 weer aan de client.

Vervolgens kunnen we ons serverblok inschakelen zodat Nginx zal dienen voorbeeld.com webpagina's. Om ons serverblok in te schakelen, moeten we een symbolische link maken van: voorbeeld.com bestand van sites-beschikbaar naar sites-enabled map. Voer hiervoor het volgende uit:

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

Er wordt een link gemaakt in site-enabled map en nu voorbeeld.com moet worden ingeschakeld. Nu hebben we twee serverblokken ingeschakeld op onze Nginx-server die op verzoek zullen reageren op basis van: luister en sever_name richtlijnen opgeslagen in voorbeeld.com serverblokconfiguratie.

Om te controleren of alle configuratiebestanden correct zijn en er geen syntaxisfout aanwezig is, voert u het volgende uit:

sudo nginx -t

Start nu eindelijk de Nginx opnieuw om de wijzigingen toe te passen door de volgende opdracht uit te voeren:

sudo systemctl herstart nginx

Nginx zal nu beginnen met het bedienen van je serverblok, je kunt naar //uw-domeinnaam en zie uw webpagina live.

Opmerking: Om het bovenstaande gedeelte te laten werken, moet u uw eigen domein instellen en vervangen voorbeeld.com met uw eigen domeinnaam. U moet ook DNS voor uw domein configureren om naar het IP-adres van uw Nginx-server te verwijzen.

Tot slot hebben we gekeken hoe Nginx te installeren, configureren ufw om externe toegang tot de Nginx-server mogelijk te maken, op afstand verbonden met Nginx, vertrouwd gemaakt met enkele basis Nginx-bestanden en -directory's en geleerd hoe een serverblokkering op te zetten.

Om meer te weten en te leren over Nginx, wil je misschien de Nginx-wiki bekijken.