Comment gérer plusieurs sites avec un hébergement OVH ?

par

Développer des sites, c'est bien. Les mettre en ligne, c'est mieux !

Depuis pas mal d'années, OVH permet à ses clients d'héberger des sites en tout genre sur leurs serveurs. Les offres ont évoluées au fil des ans et les hébergeurs doivent s'adapter aux nouvelles contraintes techniques proposées par les frameworks et les CMS.

Si gérer un seul site se montre plutôt simple, il est beaucoup plus complexe d'avoir à en gérer un nombre potentiellement infini.

Plusieurs problématiques se posent alors :

  • De quoi vais-je avoir besoin techniquement parlant (espace, bases de données...) ?
  • Comment je vais m'organiser pour m'y retrouver ?
  • Combien cela va coûter par an au final ?

Le plus compliqué est d'anticiper ces problématiques sur plusieurs années car devoir changer de structure est - on ne va pas se mentir - une plaie incommensurable. Cela prend un temps fou et le risque d'erreurs/pertes dans le transfert est grand. Donc si on peut l'éviter, c'est bien.

On va simplifier le problème en proposant deux écoles de pensée :

D'une part, vous pouvez séparer la totalité des hébergements. Il existe souvent des offres "Nom de domaine + Hébergement" qui permettent d'héberger un seul site moyennement grand. Cela a l'avantage d'encadrer parfaitement les sites, de faciliter les transferts et d'anticiper la quasi-totalité des futures contraintes techniques.
Par contre, d'une, cela va vite coûter bonbon. Comptez environ 50€/TTC par an pour ce type d'hébergement, donc à chaque site, c'est un renouvellement, une facture à gérer, et malgré les rappels, on a vite l'impression de passer à la caisse tous les matins.

D'autre part, vous avez les hébergements multi-sites, sur lesquels vous faites pointer plusieurs domaines dessus. Ces offres sont un peu plus onéreuses à l'achat et n'ont pas vraiment de prix de base, même si à partir de 150€/TTC par an, considérez que vous avez ce type d'offre.
Par contre, si vous divisez ça par le nombre de site, le rapport qualité/prix devient intéressant. Cela demande toutefois quelques connaissances techniques pour bien organiser ses sites et ne pas se mélanger les pinceaux lors de sa mise en place et de sa maintenance.

C'est de cette seconde façon de faire dont on va parler, puisque c'est celle là que l'on propose chez Web ex Machina, via une offre OVH Performance :)

A noter qu'on peut également utiliser ce qu'on appelle un serveur dédié, mais ce n'est pas le propos ici puisque ces derniers ont pour vocation à répondre à des besoins plus lourds ou qui nécessitent davantage de libertés.

Visuel des offres mutualisées sur le site OVH
Les offres mutualisées OVH

Notions élémentaires

Avant d'attaquer, on a besoin de récapituler comment fonctionne une navigation entre votre ordinateur et le serveur qui héberge le site web.

Tout d'abord, vous demandez d'afficher une page web, cette requête va partir jusqu'à un serveur de nom, que l'on nomme DNS - Domain Name System - dont la tâche est de "convertir" une requête en une adresse IP. Cette adresse IP correspond au serveur qui va traiter votre requête, et vous retourner un résultat, sous forme de code HTML pour notre exemple. Votre navigateur traite ensuite le code retourné et vous avez une jolie page comme cet article qui apparaît.

Comme on l'a mentionné plus haut, un serveur peut gérer différents sites web. On peut faire le parallèle avec un immeuble, dont vous connaissez l'adresse mais pas l'appartement. Pour résoudre cela, on vous donne un étage, et un numéro d'appartement et hop, vous trouvez facilement.
Pour un serveur, on a les VHosts (Virtual Hosts) pour cela. Ils contiennent une grande partie de la configuration des sites web sur le serveur, et notamment leur emplacement sur ce dernier. Dans la plupart des cas, un VHost correspond à un site web.

Donc si on récapitule :

  1. On demande d'une page Web
  2. Le serveur DNS de la page web trouve l'adresse IP du serveur web
  3. Le serveur web à l'adresse IP de l'étape 2 réceptionne notre demande
  4. Le VHost du site web demandé nous redirige vers l'emplacement du site web
  5. Le site web traite notre demande et génère un résultat
  6. Ce résultat fait le chemin inverse jusqu'à l'affichage sur notre navigateur

Nota : Un serveur web n'a rien de différent d'un ordinateur lambda. C'est un ordinateur qui tourne toute la journée, et qui dispose d'ouvertures pour permettre à d'autres ordinateurs d'envoyer des requêtes. A part cette distinction, vous retrouverez des fichiers, des dossiers, une arborescence etc...

La gestion du multisites chez OVH

Le souci étant que chez les offres des hébergeurs, pour des raisons de sécurité, nous n'avons pas accès à ces fameux VHosts dans leur intégralité. Mais on peut modifier quelques éléments tout de même.

Chez OVH, quand on ajoute un site à son hébergement multi-sites, on dispose d'un assistant qui va générer un VHost, dont on va détailler le processus ci-dessous. Ainsi que deux-trois outils, astuces et offres complémentaires pour disposer d'une structure fiable & flexible.

Capture de l'interface multi-site Web ex Machina sur le site OVH
Interface multi-sites chez OVH. On a camouflé nos sites, confidentialité oblige ;)

1ère étape : La sélection du domaine

Tout d'abord, vous devez sélectionner le domaine sur lequel vous allez bosser. OVH nous facilite la vie en nous affichant une liste des domaines dont on est le propriétaire ou l'administrateur. Chez nous, on a webexmachina.fr et webexmachina.org, affichés dans l'image ci-contre.

Quand vous voulez ajouter un domaine externe, c'est un peu plus compliqué car vous devez renseigner des informations dans la zone DNS du domaine en question, ce qui sous-entend d'y avoir accès ou d'avoir un intermédiaire qui dispose des accès et qui sait quoi en faire.
L'objectif est d'envoyer les requêtes d'un domaine externe sur votre serveur, comme expliqué plus haut. Vous devrez également configurer un token "ovhcontrol" qui permet de s'assurer que la demande est authentique.

Cependant, la logique est la même pour les deux types de site, vous choisissez le domaine à utiliser, vous configurez ensuite ce qu'il y a à configurer, puis vous patienter le temps de la mise en place du site.

Visuel de l'ajout d'un domaine sur un hébergement mutualisé Web ex Machina
Sélection d'un domaine interne

2nd étape : La configuration

Ensuite vous devez configurer votre site. Le point commun des domaines internes et externes va être l'emplacement du site sur votre serveur. On y reviendra plus tard car c'est là qu'on va devoir être malins.

Voici la liste des autres éléments amenés à être configurés, avec une explication :

Propriété Explication Exemple / Complément
Domaine Il s'agit du sous-domaine ou du domaine entier que vous voulez utiliser1.

Interne : test pour test.domaine.com
Externe : test.domaine.com en entier

Créer également le sous-domaine www... Comme le www.domaine.com est souvent utilisé2, OVH nous propose de le configurer automatiquement pour gagner du temps

test pour test.domaine.com créera également www.test.domaine.com

Dossier Racine Emplacement du dossier, sans "/" final :)

www/dossier/du/site

Option - IPv6 Actuellement, on utilise des adresses IPv4, mais il existe la possibilité d'avoir des adresses IPv6 en parallèle.

Ça n’empêche pas le site de fonctionner mais ça permet d'anticiper des problématiques futures3.

Option - SSL

Rend votre site accessible via le protocole HTTPS4. C'est quasiment obligatoire aujourd'hui et on en reparlera dans un futur article.

test.domaine.com sera accessible via http://test.domaine.com et https://test.domaine.com (C'est le cadenas vert à côté de la barre d'adresse de votre navigateur)

Option - Activer le CDN Le CDN - Content Delivery Network - est un système permettant de rendre accessible votre site sur différents serveurs, pour avoir la meilleure vitesse de lecture possible selon l'utilisateur.

Cela peut se baser sur des critères de type de support ou géographiques par exemple.

Option - Ip du pays Cette option permet de géolocaliser les parties internationales de votre site et d'en améliorer ainsi le référencement

Si la doc est assez claire, je n'ai encore jamais pu constater de changement fondamental avec ce option.

Activer le firewall Active un module de sécurité qui couvre la majorité des failles connues

Documentation OVH

Logs séparés OVH logue les requêtes qui ont lieu sur le serveur, par défaut groupées par hébergeur, mais vous pouvez les séparer et les attribuer à un autre domaine interne.

 

  1. Laissez vide si vous voulez utiliser le domaine principal
  2. Cela vient du fait que les sites étaient souvent dans un dossier "www", donc pour des raisons pratiques, on leur attribuait "www.domaine.com"
  3. Avec les appareils connectés, on était censés être un peu juste en adresses IP, mais apparemment pas tant que ça puisque le sujet est en stand-by depuis un moment...
  4. Cela se configure au niveau du domaine, donc si vous configurez un domaine externe, l'option n'est pas possible. Vous devez le faire depuis l'interface de gestion du domaine externe.
Capture de la seconde étape d'ajout de domaine à un hébergement mutualisé OVH
Configuration d'un domaine interne
Visuel de la configuration d'un domaine externe sur OVH
Configuration d'un domaine externe

2nd étape bis : L'emplacement du site

En effet, on ne le répétera jamais assez, il faut une bonne structure et une bonne nomenclature si on espère que notre serveur traverse les années. Chacun a sa façon de s'y retrouver, et voilà la notre ci-dessous :

  1. Le niveau 1 définit le type de site. On a choisi de distinguer les sites "clients", "perso" ou "pro", cela sert de premier filtre.
  2. Le niveau 2 utilise explicitement le domaine. Une structure logique permet de gagner beaucoup de temps quand on navigue sur le serveur.
  3. Le niveau 3 est spécifique au domaine et au projet qu'il y a derrière. On retrouve souvent les sous domaines ou les versions du projet.

Exemples :

  • www.webexmachina.fr se trouve dans www/pro/webexmachina.fr/www
  • dev.webexmachina.fr se trouve dans www/pro/webexmachina.fr/dev
  • www.julienthirion.com se trouve dans www/perso/julienthirion.com/www
  • www.inn42.fr se trouve dans www/perso/inn42.fr/v2

Voilà, c'est assez simple, on a une règle, et on la suit. A vous de trouver une façon qui vous convient et de vous y tenir. Rien n’empêche de complexifier encore plus la structure pour la rendre encore plus explicite, ou au contraire la simplifier si vous trouvez pénible de devoir naviguer dans des structures complexes.

Sur Inn42 j'ai opté pour des dossiers représentant les versions du blog plutôt que des représentations des sous-domaines. Cela s'explique car je me sers de ce blog pour tester des modules et des développements, donc j'ai besoin de plus de flexibilité et les dossiers en versions me le permettent.

Le jour où je veux mettre en ligne une nouvelle version, je créé un dossier v3, où j'envoie les fichiers, et je n'ai qu'à éditer le multisite pour dire que "www.inn42.fr" n'a plus l'emplacement "www/perso/inn42.fr/v2" mais "www/perso/inn42.fr/v3".

Ainsi la mise à jour se fait sans avoir eu à mettre en maintenance le site et si j'ai tout cassé, je peux revenir facilement à la version précédente.

Visuel de l'interface Filezilla Web ex Machina
Filezilla - Logiciel de transferts de fichiers FTP/SFTP/SSH

3ème étape : Validation & patience...

Une fois que vous avez validé votre configuration, cela prend environ 15/20 minutes pour un domaine en interne. C'est assez rapide. Attention toutefois au certificat SSL - si vous avez coché l'option - qui devra être régénéré et qui lui peut prendre plusieurs heures.

Pour les domaines externes, cela dépend du "Registrar" - l'entité où vous avez acheter et ou vous gérez le site. Si vous avez un hébergement OVH et un domaine externe, enregistré chez OVH, c'est assez rapide, maximum 2h. Ils se protègent en mettant jusqu'à 48h mais c'est bien souvent plus rapide que ça.

Pour les autres Registrar, comptez bien 48h. Ce temps vient également à réduire aussi avec les process automatiques mais bon, mieux vaut prévoir qu'être en retard, surtout quand on a une deadline de mise en ligne.

Nota : Ces différences de temps sont appelés "délais de propagation". Cela fonctionne un peu comme une redirection postale, quand vous déménagez, il faut un peu de temps pour que tous les services qui envoyaient des lettres à l'adresse A se mettent à les envoyer à l'adresse B. Ici, c'est pareil, les serveurs DNS ont des espèces de mémoires temporaires et il faut un certain temps pour qu'elles s'actualisent, d'où le délai de 48h.

Outils et offres complémentaires

Pouvoir accueillir plusieurs sites sur un même serveur, c'est une chose, mais comment limiter les permissions par site ? Comment donner des accès à des clients sans leur donner accès aux autres sites ?

On a bien sûr la réponse à cela, et on va distinguer deux choses : l'accès FTP et l'accès à la base de données.

La gestion des comptes FTP

Un compte FTP permet de transférer des fichiers sur votre hébergement. Il dispose de permissions ajustables à une situation et un contexte donné.

Par défaut, les hébergeurs vous donnent ce qu'on appelle un compte root. Il s'agit du compte qui a tous les droits sur votre hébergeur. Soyons clairs :

VOUS NE DEVEZ JAMAIS DONNER LES IDENTIFIANTS D'UN COMPTE ROOT

Même si on vous le demande gentiment. Vous devez créer un compte FTP par site et le configurer pour qu'il ne puisse accéder qu'à ce dernier. Veuillez également créer un compte FTP par utilisateur final, pour être sûrs d'identifier qui a fait quoi en cas de problème.

A chaque création de compte, vous devez mentionner un identifiant unique - chez OVH, il est préfixé par votre identifiant root - un mot de passe, ainsi que le répertoire par défaut du compte.
Cela correspond au dossier auquel le compte aura accès. Il ne pourra pas remonter d'un niveau, d'où l'importance de l'arborescence des dossiers ci-dessus.

Vous pouvez également indiquer le protocole à utiliser ou à autoriser. OVH accepte les protocoles FTP (File Transfer Protocol), SFTP (SSH File Transfer Protocol) et SSH (Secure Shell). Ils font tous la même chose, mais pas de la même façon. Leur utilisation dépend du contexte de votre projet et si vous n'avez aucune idée de ce qu'il faut utiliser, prenez le FTP :)

Nota : Selon l'offre que vous avez choisi, il est possible que les comptes FTP soient plus ou moins limités.

Capture de l'interface de gestion des comptes FTP Web ex Machina sur OVH
Interface des comptes FTP chez OVH.

La gestion des bases de données

Quand vous prenez un hébergement, il est fort probable qu'un certain nombre de bases de données soient livrées avec, puisqu'elles vont de pair avec le fonctionnement d'un site Internet.

Dans notre cas, on a soit une base de données de 4Gb ou 3 bases de données de 800Mb. Cela varie selon les offres et les hébergeurs. Même si des méthodes existent pour faire cohabiter des sites Internet différents sur une même base, il est préférable de suivre la règle "Une base de données par site Internet".

Donc un petit problème se pose : On ne peut pas avoir plus de 3 sites avec notre offre actuelle.

Visuel de première étape de création de BDD sur OVH
Création d'une base de données OVH

Il existe une solution pour cela, prendre une offre "SQL Privé" à côté. Cela consiste à ne plus limiter votre nombre de bases de données mais de n'avoir plus qu'une limitation de puissance. La seule contrainte devient la capacité du serveur à faire tourner vos bases, peu importe le nombre de sites que vous avez et qui utilisent ces bases.

Vous pouvez alors respecter la règle d'une base de données par site, et en prime, vous pouvez configurer chaque accès individuellement, accéder aux statistiques, bénéficier de sauvegardes automatiques... Bref, c'est une offre complète dont on aura l'occasion de reparler un peu plus tard.

Visuel des offres de SQL privés proposées par OVH
Les offres SQL Privé chez OVH

Logiciels et Liens utiles

Comme pour toute utilisation d'un outil, il existe des tas de logiciels gravitant autour et qui en facilitent l'usage. Vous trouverez ci-dessous un tableau récapitulatif de sites et logiciels que l'on utilise régulièrement quand on est amenés à gérer un hébergement.

Nom Type Descriptif Lien
Filezilla Logiciel - Gratuit Permet de transférer des fichiers de votre ordinateur à un serveur https://filezilla-project.org/
PuTTy Logiciel - Gratuit Permet de se connecter en SSH sur un serveur https://www.putty.org/
WHOIS Lookup Site Internet Permet d'obtenir des informations sur un nom de domaine https://www.whois.com/whois/
Ping.eu Site Internet Ensemble d'outils permettant d'obtenir des informations sur un hébergement ou un nom de domaine https://ping.eu/
MySQL Workbench Logiciel - Gratuit Permet de manipuler des bases de données https://dev.mysql.com/downloads/workbench/
SublimeText 3 Logiciel - Gratuit Editeur de texte où l'on peut greffer un plugin FTP pour éditer directement les fichiers d'un serveur

https://www.sublimetext.com/3

Notre article sur SublimeText 3

Il y a beaucoup de choses à savoir et à apprendre dans le domaine des hébergements web. C'est un métier à part entière et une tâche qui ne doit pas être prise à la légère.

Pour choisir une solution flexible, durable et adaptée à votre besoin, commencez par analyser votre capacité à comprendre et à utiliser ces offres. Il est préférable d'utiliser une solution moins flexible, mais que vous maitrisez plutôt qu'un système ultra flexible qui vous échappera.

Cette analyse va peut-être vous amener à la conclusion que vous devez externaliser, et c'est une conclusion valable.

Quand l'hébergeur - qu'il s'agisse d'un service interne ou un prestataire - fait bien son job, on ne remarque rien. Tout est transparent et fonctionne comme sur des roulettes. Il ne faut pas oublier que c'est une machine complexe qui tourne derrière et qu'une erreur peut vite coûter une fortune en temps et en données.