Cette procédure vise à expliquer la mise en place d'un virtual host Nginx pour plusieurs sites avec configuration des sous-domaine.
On va créer le fichier de configuration de notre virtualhost. Il est recommandé de suivre la convention de nommage qui dit de nommer son vhost par domaine.com
:
sudo nano /etc/nginx/sites-available/domaine.com
Nous allons suite mettre cette configuration pour permettre au fichier de supporter 2 applications web qui vont écouter sur 2 ports différents (3000 et 4000)
Cette configuration permet au serveur WEB de proxyfier les différents sous domaine sur des ports différents pour que les deux soient fonctionnels.
server {
listen 80;
server_name site1.domaine.com site2.domaine.com;
# Configuration pour le premier site (site1)
location / {
root /var/www/site1; # Répertoire web pour le premier site
# Proxy si nécessaire vers une application backend
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
# Fichiers par défaut
index index.html index.htm index.php;
# Gestion des fichiers statiques
try_files $uri $uri/ =404;
}
# Configuration pour le deuxième site (site2)
location /site2 {
root /var/www/site2; # Répertoire web pour le deuxième site
# Proxy vers un autre port backend
proxy_pass http://localhost:4000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
# Fichiers par défaut
index index.html index.htm index.php;
# Gestion des fichiers statiques
try_files $uri $uri/ =404;
}
}
Afin de faire en sorte que les fichiers de configuration soient actifs, nous allons créer un lien symbolique pour que les fichiers apparaissent dans /etc/nginx/sites-enables/
:
sudo ln -s /etc/nginx/sites-available/domaine.conf /etc/nginx/sites-enabled/
On teste la configuration :
sudo nginx -t
Enfin, on redémarre Nginx :
sudo systemctl restart nginx
Nous avons nos 2 sites web actifs grace aux configurations Nginx.