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