Zoeken op website

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. Een A 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 domeinnaam crazytechgeek.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.