Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

« Multiple Applications » : différence entre les versions

De AJLSM
Aller à la navigation Aller à la recherche
m →Création d'instances : port d'écoute et d'arret
Ligne 15 : Ligne 15 :
=== Création d'instances ===
=== Création d'instances ===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
# instance de production
tomcat6-instance-create -p 8080 -c 8005 "$AJLSM_HOME"/server/tomcat6-prod  
tomcat6-instance-create -p 8080 -c 8005 "$AJLSM_HOME"/server/tomcat6-prod  
# instance de recette
tomcat6-instance-create -p 9090 -c 9005 "$AJLSM_HOME"/server/tomcat6-recette  
tomcat6-instance-create -p 9090 -c 9005 "$AJLSM_HOME"/server/tomcat6-recette  
</syntaxhighlight>
</syntaxhighlight>

Version du 5 février 2013 à 17:42

To do :
Un scénario utilisatant la commande Debian de tomcat6-instance-create) est décrite dans la doc du projet Odysseo. Il serai pertinent de reporter le contenu dans l'article ci-dessous.

Cette page décrit le scénario où l'on déploie une première application pour faire le service web et une seconde pour être utilisé par les scripts de publication. Cela présente l'avantage de pouvoir interrompre les scripts et les relancés sans perturbation du service web. Il est cependant à noter que les ressources étant partagés entre les diverses applications on peut voir un ralentissement du service web.

On distingue les deux Tomcat comme suit:

  1. le « front » qui fait le service web publique
  2. le « back » qui servira aux script de conversions/publication.

Utilisation de tomcat6-instance-create

Pré-requis

Cette commande dépends du paquet tomcat6-user :

apt-get install tomcat6-user

Création d'instances

# instance de production
tomcat6-instance-create -p 8080 -c 8005 "$AJLSM_HOME"/server/tomcat6-prod 
# instance de recette
tomcat6-instance-create -p 9090 -c 9005 "$AJLSM_HOME"/server/tomcat6-recette

Configuration des instances

On configurera les instances pour écouter sur des ports différents :

Configuration du serveur : server.xml

Production Recettage
    <Connector port="8009" protocol="AJP/1.3"
        redirectPort="8443"
        emptySessionPath="true"
    />
    <Connector port="9009" protocol="AJP/1.3"
        redirectPort="9443"
        emptySessionPath="true"
    />


Préparer l'environnement à une approche multi-appli/tomcat/DB

Pour que notre approche fonctionne correctement, il faut :

  1. dupliquer le serveur Tomcat ;
  2. dupliquer l'application ;
  3. dupliquer la base de données (si nécessaire) ;
  4. Mettre à jour les scripts, commandes et alias pour qu'ils supportent l'approche multiple.

Duplication de Tomcat

On commencera par localiser Tomcat sur le serveur, ici, on supposera qu'il est situé dans /opt/. Ensuite, on fera une copie du dossier de tomcat pour obtenir ce genre de configuration (-> indique un lien symbolique) :

apache-tomcat-6.0.29/
apache-tomcat-6.0.29-back/
apache-tomcat-6.0.29-front -> apache-tomcat-6.0.29/
tomcat6-back -> apache-tomcat-6.0.29-back/
tomcat6-front -> apache-tomcat-6.0.29-front/

Figure : Exemple d'organisation (utilisant des liens symboliques)

Serveurs Tomcat

On va déployer un serveur pour gérer les scripts et un pour faire le service web. Il faut changer quelques port :

  1. redémarrage (shutdown) ;
  2. redirection ;
  3. connecteur HTTP ;
  4. connecteur AJP.
<Server port="8005" shutdown="SHUTDOWN">
...
    <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" emptySessionPath="true" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" emptySessionPath="true" />

Figure : Ports d'écoute pour l'application de front

<Server port="9005" shutdown="SHUTDOWN">
...
    <Connector port="9090" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="9443" emptySessionPath="true" />
    <Connector port="9009" protocol="AJP/1.3" redirectPort="9443" emptySessionPath="true" />

Figure : Ports d'écoute pour l'application de back

Mise à jour des scripts de l'environnement

Si vous utilisez l'arborescence de production et les scripts de gestion serveurs alors la gestion d'application multiple est native.