Nginx-serverblokken (virtuele hosts) instellen op Ubuntu 20.04
Soms moet u mogelijk meer dan één domein of website hosten op uw Nginx-webserver. Om dat te laten gebeuren, moet een Serverblok (Virtuele Hosts) worden geconfigureerd om de volledige configuratie van uw domein te omvatten. Nginx-serverblokken zijn synoniem met Apache virtuele hostbestanden en dienen hetzelfde doel.
In dit onderwerp wordt gedemonstreerd hoe u een Nginx-serverblok instelt op Ubuntu 20.04.
Vereisten:
- Een
A
-record gedefinieerd bij uw domeinnaamhostingprovider. EenA
record is een DNS-record dat de domeinnaam verwijst naar het IP-adres van de openbare server. Voor deze handleiding gebruiken we ter illustratie de domeinnaamcrazytechgeek.info
. - Een Nginx Server of LEMP Stack geïnstalleerd op Ubuntu 20.04 LTS-instantie.
- Een login-gebruiker met Sudo-rechten.
Nu aan alle vereisten is voldaan, gaan we kijken hoe u een Nginx-serverblok kunt instellen in Ubuntu.
Stap 1: Maak een Nginx-documenthoofdmap
Om aan de slag te gaan, zullen we een aparte map voor ons domein aanmaken, waarin alle instellingen met betrekking tot het domein staan.
sudo mkdir -p /var/www/crazytechgeek.info/html
Wijs vervolgens het eigendom van de directory toe met behulp van de omgevingsvariabele $USER
. Hierdoor wordt het eigendom van de directory toegewezen aan de momenteel ingelogde gebruiker. Zorg ervoor dat u bent ingelogd met een gewoon gebruikersaccount en niet als root.
sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html
Wijs vervolgens de juiste machtigingen toe aan de map, waarbij u de ingelogde gebruiker alle rechten verleent (lezen, schrijven en uitvoeren) en de groep en andere gebruikers alleen lees- en uitvoerrechten.
sudo chmod -R 755 /var/www/crazytechgeek.info
Als de maprechten en het eigendom correct zijn geconfigureerd, moeten we een voorbeeldwebpagina voor het domein maken.
Stap 2: Maak een voorbeeldpagina voor het domein
In deze stap gaan we een index.html
-bestand maken voor testdoeleinden. Dit bestand levert inhoud die in de webbrowser wordt weergegeven wanneer het domein in de browser wordt aangeroepen.
sudo vim /var/www/crazytechgeek.info/html/index.html
Plak de volgende HTML-inhoud.
<html>
<head>
<title>Welcome to your_domain!</title>
</head>
<body>
<h1>Bravo! Your server block is working as expected!</h1>
</body>
</html>
Sla het configuratiebestand op en sluit het af.
Stap 3: Maak een Nginx-serverblok in Ubuntu
Nginx serverblokken bevinden zich in de map /etc/nginx/sites-available
. Het standaard Nginx-serverblok is /etc/nginx/sites-available/default
dat het standaard HTML-bestand op /var/www/html/index.nginx-debian.html bedient >.
Voor ons geval moeten we een serverblok maken dat de inhoud in het index.html
-bestand zal weergeven dat we eerder hebben gemaakt.
Maak dus het weergegeven serverblokbestand.
sudo vim /etc/nginx/sites-available/crazytechgeek.info
Plak de inhoud hieronder:
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;
}
access_log /var/log/nginx/crazytechgeek.info.access.log;
error_log /var/log/nginx/crazytechgeek.info.error.log;
}
Sla het bestand op en sluit het af.
Stap 4: Schakel Nginx Server Block in Ubuntu in
Om het Nginx serverblok in te schakelen, moet je het symbolisch koppelen aan de map /etc/nginx/sites-enabled/
, zoals weergegeven.
sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/
Op dit punt zijn we zo goed als klaar. Het is echter verstandig om te bevestigen dat alle configuraties in orde zijn. Om dit te doen, voert u de opdracht uit:
sudo nginx -t
Als u onze stappen correct heeft gevolgd, zou u de weergegeven uitvoer moeten krijgen:
Start ten slotte Nginx opnieuw op, zodat de wijzigingen in de configuratiebestanden van kracht worden.
sudo systemctl restart Nginx
Bevestig vervolgens of Nginx actief is door de weergegeven opdracht uit te voeren:
sudo systemctl status Nginx
Stap 5: Het Nginx-serverblok testen in Ubuntu
Om te bevestigen of het serverblok werkt zoals verwacht en inhoud aanbiedt in de map /var/www/crazytechgeek.info
, opent u uw webbrowser en bladert u door de domeinnaam van uw server:
http://domain-name
U zou inhoud in het HTML-bestand in uw serverblok moeten krijgen, zoals weergegeven.
Conclusie
In deze handleiding hebben we u laten zien hoe u een Nginx-serverblok kunt instellen met behulp van een enkel domein op Ubuntu Linux. U kunt dezelfde stappen herhalen voor verschillende domeinen en toch dezelfde resultaten bereiken. We hopen dat de gids inzichtelijk was.