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

$ cd /usr/share/nginx/html

$ sudo mkdir default site1 site2

$ sudo echo "Bienvenue sur le site default" > default/index.html
$ sudo echo "Bienvenue sur le site site1" > site1/index.html
$ sudo echo "Bienvenue sur le site site2" > site2/index.html

Création des Virtual Hosts

le catch all : default

$ sudo cd /etc/nginx/conf.d
$ sudo cp default.conf default.conf.origine
$ sudo vi default.conf
server {
  listen       80;
  server_name  localhost;

  location / {
    root   /usr/share/nginx/html/default;
    index  index.html index.htm;
  }
}

site 1

server {
  server_name  site1.alasta.lab;

  location / {
    root   /usr/share/nginx/html/site1;
    index  index.html index.htm;
  }
}

site 2

server {
  server_name  site2.alasta.lab;

  location / {
    root   /usr/share/nginx/html/site2;
    index  index.html index.htm;
  }
}

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

$ curl http://site1.alasta.lab
Bienvenue sur le site site1

$ curl http://site2.alasta.lab
Bienvenue sur le site site2

$ curl http://default.alasta.lab
Bienvenue sur le site default

$ curl http://test.alasta.lab
Bienvenue sur le site default

$ curl http://www.alasta.lab
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.