Er zijn verschillende manieren om virtual hosts aan te maken in Nginx. In dit artikel leg ik je uit hoe je dit op een overzichtelijke en vooral eenvoudige manier op kunt zetten. Dit artikel is een vervolg op mijn eerdere artikel over het inrichten van een server met centos, nginx en nodejs. Is de server nog niet juist geconfigureerd, volg dan eerst de uitleg in dat artikel.
De inrichting
Om de verschillende hostnames overzichtelijk op de server te plaatsen gaan we beginnen met het aanmaken van 2 directories op de server. Navigeer hiervoor op de volgende manier naar de Nginx directory:
cd /etc/nginx
Maak vervolgens de directories “sites-available” en “sites-enabled” als volgt aan:
mkdir sites-available mkdir sites-enabled
Vervolgens moeten we ervoor zorgen dat Nginx de bestanden in deze directories kan vinden. Dit doen we door in de config van Nginx aan te geven dat alle bestanden in de directory sites-enabled geinclude moeten worden. Open hiervoor het bestand nginx.conf. dit bestand vind je op de volgende locatie:
/etc/nginx/nginx.conf
Op 1 van de onderste regels vind je de volgende code:
include /etc/nginx/conf.d/*.conf;
Voeg onder dit stukje de volgende code toe:
include /etc/nginx/sites-enabled/*;
De laatste stap is om Nginx te herstarten. dit doe je als volgt:
/etc/init.d/nginx restart
Virtual hosts aanmaken
Het is tijd om een virtual host aan te gaan maken. Dit doen we door een bestand te maken in de map sites-available.
cd /etc/nginx/sites-available touch [vul hier je domeinnaam in]
Nu is het zaak om de volgende code in het zojuist aangemaakte bestand te plaatsen. Pas alle stukjes tussen [] aan naar je eigen situatie:
server { listen 0.0.0.0:80; server_name [domeinnaam]; access_log /var/log/nginx/[domeinnaam].log; root [pad naar document root, bijv. /var/www/websitenaam]; }
De virtual host is op dit moment aangemaakt. ALs je dit nu uitprobeert zul je zien dat het nog niet werkt, dit komt omdat Nginx alle bestanden in de sites-enabled directory include en we hebben dit bestand in de sites-available directory geplaatst.
Om dit op te lossen maken we een symlink in de directory sites-enabled naar het zojuist gemaakte bestand
cd /etc/nginx/sites-enabled ln -s /etc/nginx/sites-available/[domeinnaam] ./[domeinnaam]
Als laatste stap gaan we Nginx nogmaals herstarten
/etc/init.d/nginx restart
Navigeer nu in je browser naar de domeinnaam om te testen of het allemaal goed gegaan is (let wel op dat de dns natuurlijk naar het ip van de server moet wijzen).
Om dit voor meerdere websites te doen herhaal je de 2 stappen per website waarbij je de bestanden natuurlijk steeds de naam van het domein geeft.
Reageren