Jan 22, 2023

NGINX Multi-domaines en utilisants les blocks

Tout d'abord, il faut lier vos domaines à l'adresse ip de votre serveur.

Pour ce faire, il faut créer un A record dans la table DNS pour chaque (sous)domaine qui pointe vers cette adresse IP.

On peut alors commencer la configuration nginx.

Si vous ne l'avez pas encore fait, il faut installer nginx :

sudo apt update
sudo apt install nginx

Vérifiez si nginx est actif :

systemctl status nginx

Vous pouvez également vérifier en tapant l'adresse ip de votre serveur dans un navigateur.

Vous devez ensuite créer un répertoire pour chaque sous domaine que vous allez utiliser.

/var/www/html/ étant le répertoire par défaut ou nginx cherchera un index en .html

sudo mkdir /var/www/html/votredomaine.com
sudo mkdir /var/www/html/app1.votredomaine.com
sudo mkdir /var/www/html/app2.votredomaine.com

Ajoutez-y également les droits en écriture/lecture.

sudo chmod -R 777 /var/www/html/votredomaine.com
sudo chmod -R 777 /var/www/html/app1.redomaine.com
sudo chmod -R 777 /var/www/html/app2.votredomaine.com

Placez ensuite dans chaque répertoire domaine un index.html

sudo nano /var/www/html/votredomaine.com/index.html
<html>
	<head>
	  <title>Bienvenue sur votredomaine.com!</title>
  </head>
	  <body>
	    <h1>Félicitations! votredomaine.com est actif!</h1>
    </body>
</html>

A répéter pour app1.votredomaine.com et app2.votredomaine.com

Il faut ensuite créer la configuration pour chaque domaine :

sudo nano /etc/nginx/sites-available/votredomaine.com
server {
        # Binds the TCP port 80.
        listen 80; 

				# Root directory used to search for a file
        root /var/www/html/votredomaine.com;
				# Defines the file to use as index page
        index index.html index.htm;
				# Defines the domain or subdomain name. 
        # If no server_name is defined in a server block then 
				# Nginx uses the 'empty' name
        server_name votredomaine.com;

        location / {
            # Return a 404 error for instances when the server receives 
						# requests for untraceable files and directories.
            try_files $uri $uri/ =404;
        }
    }

Puis finalement créer une référence vers la configuration (a répéter pour les autres domaine) :

sudo ln -s /etc/nginx/sites-available/danyleduc.com /etc/nginx/sites-enabled/

Votre configuration est a présent fonctionnelle.

Redémarrez nginx avec la commande :

sudo systemctl restart nginx

Ouvrez un navigateur et tapez app1.votredomaine.com et app1.votredomaine.com. Vos pages html créées précédemment sont alors affichées.

Dany Leduc

Dany Leduc

Passionné de nouvelles technologies et fort de plus de 10 ans d'expérience en tant que développeur dans le monde de la finance notemment, j'ai acquis une certaine connaissance dans divers languages/framework. Ma passion du moment est la blockchain.

Leave a Reply

Related Posts

Categories