Contexte :

Nous partirons d'un système de base sous CentOS 6 avec NGINX d'installé.
Ce billet démontre la facilité de NGINX à gérer le catch all contrairement à Apache.

Configuration :

Création de l'arborescence des sites

1 $ cd /usr/share/nginx/html
2 
3 $ sudo mkdir default site1 site2
4 
5 $ sudo echo "Bienvenue sur le site default" > default/index.html
6 $ sudo echo "Bienvenue sur le site site1" > site1/index.html
7 $ sudo echo "Bienvenue sur le site site2" > site2/index.html

Création des Virtual Hosts

le catch all : default

1 $ sudo cd /etc/nginx/conf.d
2 $ sudo cp default.conf default.conf.origine
3 $ sudo vi default.conf

1 server {
2   listen       80;
3   server_name  localhost;
4 
5   location / {
6     root   /usr/share/nginx/html/default;
7     index  index.html index.htm;
8   }
9 }

site 1

1 server {
2   server_name  site1.alasta.lab;
3 
4   location / {
5     root   /usr/share/nginx/html/site1;
6     index  index.html index.htm;
7   }
8 }

site 2

1 server {
2   server_name  site2.alasta.lab;
3 
4   location / {
5     root   /usr/share/nginx/html/site2;
6     index  index.html index.htm;
7   }
8 }

Tests de bon fonctionnement :

Pré-requis

Il faut pour cela que la résolution DNS fonctionne, par l'ajout des enregistrements dans le DNS des clients ou le fichier hosts de chaque client.

Tests

 1 $ curl http://site1.alasta.lab
 2 Bienvenue sur le site site1
 3 
 4 $ curl http://site2.alasta.lab
 5 Bienvenue sur le site site2
 6 
 7 $ curl http://default.alasta.lab
 8 Bienvenue sur le site default
 9 
10 $ curl http://test.alasta.lab
11 Bienvenue sur le site default
12 
13 $ curl http://www.alasta.lab
14 Bienvenue sur le site default

On voit bien que les virtual hosts site1 et site2 sont configurés et que le reste va sur default.