Hulpartikel overzicht

Hulpartikel

Een Nginx webserver installeren in Ubuntu 20.04

Een Nginx-webserver installeren in Ubuntu 20.04

In dit artikel leggen wij de installatie en configuratie voor een Nginx-webserver in Ubuntu 20.04 uit.

Nginx is een webserver en een reverse-proxyserver gericht op laag geheugengebruik en hoge prestaties. Host je een dynamische website op je VPS (e.g. WordPress), dan heb je ook MariaDB nodig (of een vergelijkbaar alternatief zoals MySQL).

In dit artikel behandelen we de volgende vier onderdelen:

  • Nginx installeren
  • De HTTP- HTTPS-poorten openen met de UFW-firewall
  • Nginx server block instellen
  • PHP installeren en configureren
  • In de voorbeelden gebruiken wij 'Example.com' als voorbeeld hier plaats je je eigen domeinnaam.
  • Voer de stappen in dit artikel uit als root user, of gebruik sudo.

Nginx installeren

 

Stap 1

Voor je Nginx installeert, controleer je of de server package list van je VPS up-to-date is en update je  die waar nodig.

sudo apt -y update && sudo apt -y upgrade

 

Stap 2

Vervolgens installeer je Nginx met het commando:

sudo apt -y install nginx

 

Stap 3

Na de installatie start je Nginx met het commando:

sudo systemctl start nginx

Je kunt de status controleren met het commando:

sudo systemctl status nginx

Wanneer Nginx correct werkt, ziet de output er als volgt uit:

nginx status

Wil je de geïnstalleerde versie van Nginx controleren? Gebruik dan het commando:

sudo dpkg -1 nginx

Op het moment van schrijven gebruiken we Nginx 1.18


De HTTP- en HTTPS-poorten openen met de UFW-firewall

 

De HTTP- en HTTPS-poorten van je VPS staan standaard dicht. Je opent deze poorten met de volgende stappen:

 

Stap 1

Ubuntu gebruikt standaard UFW als firewall. Heb je UFW nog niet ingeschakeld en logging nog niet aangezet? Doe dit dan eerst met de commando’s:

sudo ufw enable
ufw logging on

 

Stap 2

Open vervolgens de HTTP- en HTTPS-poort met het de commando’s:

sudo ufw allow 'Nginx Full'

Je kunt controleren of de regel correct is toegevoegd met het commando:

ufw status numbered

 

Stap 3

Gebruik je de VPS-firewall in het controlepaneel? Open dan ook de HTTP- en HTTPS-poorten in je controle paneel.

VPS-Firewall IP poort


Nginx server block instellen

 

Nginx maakt gebruik van server blocks. Deze zijn vergelijkbaar met Apache’s virtual hosts en stellen je in staat om meer dan één website tegelijketijd online te hosten.

 

Stap 1

Eerst maak je een directory aan voor je domein.

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

 

Stap 2

De root-user is door het gebruik van sudo automatisch eigenaar geworden van deze directory. Pas voor de html volder de eigenaar aan naar jezelf met het commando:

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

 

Stap 3

Pas de rechten tot de directory aan zodat de eigenaar volledige toegang heeft en de groep en andere gebruikers bestanden in de directory kunnen lezen en uitvoeren.

sudo chmod -R 755 /var/www/example.com

 

Stap 4
Om de werking van je Nginx-server te testen, maken we een test-bestand aan in de html-directory. Je kunt ook in plaats hiervan je eigen website uploaden, bijvoorbeeld via SFTP. Let wel op dat als je een dynamische website upload, er ook een database server geïnstalleerd moet zijn op je VPS.

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

Geef het bestand de volgende inhoud, of gebruik je eigen html-code:

<!DOCTYPE html>

<html>

    <head>

        <title>Voorbeeld</title>

    </head>

    <body>

        <p>Hello world! </p>

    </body>

</html>

Sla de wijziging op en sluit nano (ctrl + x > y > enter).


 

Stap 5

Om de inhoud van index.html te kunnen tonen, maak je voor Nginx een server block aan:

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

 

Stap 6

Plak de volgende configuratie in het geopende bestand.

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /var/www/EXAMPLE.COM/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name EXAMPLE.COM WWW.EXAMPLE.COM;
        location / {
                try_files $uri $uri/ =404;
        }
        location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php-fpm.sock;
        }
}

 

Stap 7

Je kunt nu direct de werking van je webserver testen door in een browser naar http://example.com te gaan, waarbij je example.com vervangt door je hostname (te controleren met het commando 'hostname'), of het IP-adres van je VPS. Je ziet dan de standaard test-pagina.


PHP installeren en configureren

 

Nginx komt niet automatisch met PHP. Om PHP te kunnen gebruiken installeer je het dan ook apart. Hieronder laten we zien hoe je PHP installeert en configureert en vervolgens de Nginx-configuratie aanpast om PHP te gebruiken.

 

Stap 1

Installeer een minimale versie van PHP met het commando:

apt -y install php-fpm

Wil je een dynamische website hosten, bijvoorbeeld een WordPress-website? Installeer dan:

apt -y install php-common php-mysql php-curl php-json php-mbstring php-mxl php-zip php-gd php-soap php-ssh2 php-tokenizer


 

Stap 2

Open nu het PHP-configuratiebestand:

sudo nano /etc/php/7.4/fpm/php.ini

De locatie van uw PHP-configuratiebestand is mogelijk niet hetzelfde, bijvoorbeeld als je een andere PHP-versie gebruikt. Controleer in dat geval de directory, bijvoorbeeld met:

find /etc/php/* | grep php.ini

 

Stap 3

Pas de volgende items naar wens aan in het PHP-configuratiebestand. Tip: met Ctrl + W kun je het bestand doorzoeken.

max_execution_time = 300
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 32M
max_input_time = 300

Sla je wijzigingen op en sluit nano met ctrl + x > y > enter.


 

Stap 4

Open nu het default server block van jouw website:

sudo nano /etc/nginx/sites-available/default

 

Stap 5

Pas het bestand aan zodat de niet-uitgecommentarieerde tekst er als volgt uitziet:

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

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

        server_name localhost;

        location / {
                include snippets/fastcgi-php.conf;
		fastcgi_pass unix:/var/run/php/php7.4-fpm.sock
		try_files $uri $uri/ =404;
        }
}

Gebruik je een andere versie van PHP? Pas dan 7.4 aan naar de versie die je gebruikt. Sla hier je wijzigingen op en sluit nano met ctrl + x > y > enter.


 

Stap 6

Open nu het server block voor jouw website:

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

 

Stap 7

Plak de volgende inhoud in het bestand:

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

root /var/www/EXAMPLE.COM/html;
index index.php index.html index.htm index.nginx-debian.html;

server_name EXAMPLE.COM WWW.EXAMPLE.COM;

location ~ \.php$ {
      try_files $uri =404;
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      fastcgi_pass unix:/run/php/php-fpm.sock;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include fastcgi_params;
      }

}

Sla opnieuw je wijzigingen op en sluit nano met ctrl + x > y > enter.


 

Stap 8

Nginx maakt gebruik van de folders sites-available en sites-enabled. De eerste bevat de websites die jeop je server host. De sites-enabled folder bevat een symbolic link (een soort van snelkoppeling) naar de sites-available folder. De website wordt hiermee daadwerkelijk beschikbaar voor mensen die hem bezoeken.

Je maakt een symbolic link aan van de sites-available naar de sites-enabled folder aan met het commando:

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

 

Stap 9

Controleer of er geen fout is opgetreden is in je configuratie door middel van het commando:

sudo nginx -t

Wanneer Nginx correct werkt ziet de output er als volgt uit:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is succesful

Herstart tot slot de Nginx- en PHP-service:

service nginx restart
service php7.4-fpm restart

Je bent nu klaar met de PHP-installatie.


 

Stap 10 - optioneel

Maak een PHP-testbestand aan om de werking van je Nginx-server te kunnen testen:

sudo nano /var/www/html/info.php

Plaats dit in het bestand als tijdelijke inhoud.

<?php
phpinfo();
?>

Open je browser en navigeer naar je domeinnaam of server ip met de toevoeging /info.php, bijvoorbeeld  http://example.com/info.php


 

Daarmee zijn we aan het eind gekomen van deze handleiding voor de installatie van Nginx in Ubuntu 20.04.

Mocht je aan de hand van dit artikel nog vragen hebben, aarzel dan niet om onze supportafdeling te benaderen. Je kunt hen bereiken via de knop 'Neem contact op' onderaan deze pagina.

Wil je dit artikel met andere gebruikers bespreken, laat dan vooral een bericht achter onder 'Reacties'.

Probeer BladeVPS een maand gratis

Maak van jouw volgende website of applicatie een succes op BladeVPS PureSSD. Probeer direct of een self-managed VPS iets voor jou is; de eerste maand krijg je van ons :-)!

Start nu je gratis maand

Heb je ook een goed idee?

Stuur jouw idee in! Met genoeg stemmen komt jouw idee op onze wishlist!

Heeft dit artikel je geholpen?

Maak een account aan of log in om een beoordeling achter te laten.

Reacties

Maak een account aan of log in om een reactie te plaatsen.

Kom je er niet uit?

Ontvang persoonlijke hulp van onze supporters

Neem contact op