Tomcat 7.x/8.x – Virtual Host

Une fois le serveur installé, la configuration initiale de Tomcat inclut un seul hôte virtuel qui fait office d’hôte par défaut (localhost). Les applications web sont accessibles via http://localhost:8080.

Prenons un serveur sur lequel vous souhaitez combiner plusieurs sites Web ayant chacun leur propre nom de domaine. Vous devez ainsi personnaliser votre configuration d’hôte virtuel et mettre à jour le plan de déploiement sur chaque application web limitée à un hôte virtuel particulier.

server.xml

Les hôtes virtuels se configurent dans le fichier CATALINA_BASE/conf/server.xml. Par défaut, ce fichier définit l’hôte virtuel localhost :

L’attribut defaultHost de la balise Engine définit l’hôte virtuel par défaut auquel seront adressées toutes les requêtes entrantes. Cet attribut est obligatoire et l’hôte virtuel renseigné doit bien sûr exister.

La balise Host représente un hôte virtuel. Il s’agit de l’association entre le nom réseau d’un serveur et le chemin vers l’instance de Tomcat qui traite les requêtes pour ce serveur. Un hôte virtuel permet ainsi de définir que pour un domaine (ici localhost), les applications web concernées (susceptibles d’être invoquées) sont situées à tel endroit sur le serveur (ici webapps). Bien entendu, pour un domaine personnalisé, le nom fourni doit être enregistré auprès d’une autorité DNS.

Cette balise accepte les attributs suivants :

  • name : nom associé à cet hôte virtuel (exemple : localhost ou www.mydomain.com).
  • appBase : chemin par défaut des applications web hébergées par cet hôte virtuel. Le chemin spécifié peut être absolu ou relatif au répertoire de base de l’installation de votre Tomcat CATALINA_BASE
  • unpackWARs : si ce paramètre est à true, les archives WAR déposées dans le répertoire appBase de cet hôte virtuel seront automatiquement décompactées dans un répertoire portant le même nom que le WAR. Sinon, les applications seront exécutées directement depuis le WAR
  • autoDeploy : indique à Tomcat s’il doit charger automatiquement les applications web qui sont copiées dans le répertoire appBase. Le cas échéant, Tomcat scrute le contenu de ce répertoire à intervalles de temps réguliers, afin de détecter de nouveaux répertoires, ou de nouveaux fichiers WAR
  • deployOnStartup : indique à Tomcat s’il doit charger les applications web se trouvant dans appBase lors de son démarrage. La valeur par défaut de cet attribut est true.

D’autres attributs sont disponibles sur la documentation officielle de Tomcat 7 ou Tomcat 8.

Les alias

Pour définir des alias d’un nom de domaine, c’est-à-dire plusieurs noms de domaine définissant le même hôte (www.mydomain.com et mydomain.com par exemple), il est possible de définir une balise Alias. Il suffit d’ajouter, à l’intérieur de la balise Host, autant de balises Alias que l’on souhaite, suivant le schéma suivant :

Quelques exemples…

Vous souhaitez accéder à l’application mywebapp via :

http://localhost:8080/mywebapp

Ceci est la configuration par défaut de Tomcat. Si votre application mywebapp se trouve dans le répertoire CATALINA_BASE/webapps, vous n’avez, dans ce cas, rien à configurer.

http://www.mydomain.com:8080/mywebapp

  1. Arrêtez votre Tomcat
  2. Créez le répertoire où sera stocké votre application mywebapp :
  3. Déplacez votre WAR ou application dans ce nouveau répertoire :
  4. Ajoutez le nouvel hôte virtuel dans le fichier CATALINA_BASE/conf/server.xml :
  5. Démarrez votre Tomcat.

http://www.mydomain.com:8080

Dans cet exemple, il s’agit de définir l’application mywebapp comme l’application racine du domaine www.mydomain.com.

  1. Arrêtez votre Tomcat
  2. Créez le répertoire où sera stocké votre application mywebapp :
  3. Déplacez votre WAR ou application dans ce nouveau répertoire et renommez-le en ROOT.war (la casse est importante) :
  4. Ajoutez le nouvel hôte virtuel dans le fichier CATALINA_BASE/conf/server.xml :
  5. Si pour une raison quelconque vous ne souhaitez pas renommer votre fichier mywebapp.war en ROOT.war, sachez que vous disposez d’une alternative. Celle-ci consiste à créer un fichier ROOT.xml dans le répertoire CATALINA_BASE/conf/Catalina/www.mydomain.com/ contenant les lignes suivantes :

    N’oubliez pas de remplacer CATALINA_BASE par le chemin du répertoire d’installation de votre Tomcat.
  6. Démarrez votre Tomcat.


Ubuntu 12.04 Server LTS (64bits)Tomcat 7.0.52

Auteur
AuteurEdouard WATTECAMPS

0 réponses

Répondre

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *