Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
Multiple Applications
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:
- le « front » qui fait le service web publique
- le « back » qui servira aux script de conversions/publication.
Utilisation de tomcat6-instance-create
[modifier | modifier le wikicode]Pré-requis
[modifier | modifier le wikicode]Cette commande dépends du paquet tomcat6-user :
apt-get install tomcat6-user
Création d'instances
[modifier | modifier le wikicode]# 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
[modifier | modifier le wikicode]On configurera les instances pour écouter sur des ports différents :
Configuration du serveur : server.xml
[modifier | modifier le wikicode]| Production | Recettage |
|---|---|
<Connector port="8009" protocol="AJP/1.3"
redirectPort="8443"
emptySessionPath="true"
/>
|
<Connector port="9009" protocol="AJP/1.3"
redirectPort="9443"
emptySessionPath="true"
/>
|
Scripts et redémarrage automatique
[modifier | modifier le wikicode]On mettra en place des taches cron pour que le serveur Apache Tomcat redémarre après le redémarrage du serveur physique. On consultera également la section Serveur#Redémarrage du serveur .
| Description | Production | Recettage |
|---|---|---|
| Script | #!/bin/bash
TOMCAT_HOME="$AJLSM_HOME/server/tomcat6-prod"
"$TOMCAT_HOME"/bin/shutdown.sh
/bin/rm "$TOMCAT_HOME"/bin/catalina.pid
/bin/rm -rf "$TOMCAT_HOME"/temp/*
/bin/rm -rf "$TOMCAT_HOME"/work/*
"$TOMCAT_HOME"/bin/startup.sh
|
#!/bin/bash
TOMCAT_HOME="$AJLSM_HOME/server/tomcat6-recette"
"$TOMCAT_HOME"/bin/shutdown.sh
/bin/rm "$TOMCAT_HOME"/bin/catalina.pid
/bin/rm -rf "$TOMCAT_HOME"/temp/*
/bin/rm -rf "$TOMCAT_HOME"/work/*
"$TOMCAT_HOME"/bin/startup.sh
|
| Redémarrage | "$AJLSM_HOME"/restartProd.sh
|
"$AJLSM_HOME"/restartRecette.sh
|
Préparer l'environnement à une approche multi-appli/tomcat/DB
[modifier | modifier le wikicode]Pour que notre approche fonctionne correctement, il faut :
- dupliquer le serveur Tomcat ;
- dupliquer l'application ;
- dupliquer la base de données (si nécessaire) ;
- Mettre à jour les scripts, commandes et alias pour qu'ils supportent l'approche multiple.
Duplication de Tomcat
[modifier | modifier le wikicode]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
[modifier | modifier le wikicode]On va déployer un serveur pour gérer les scripts et un pour faire le service web. Il faut changer quelques port :
- redémarrage (shutdown) ;
- redirection ;
- connecteur HTTP ;
- 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
[modifier | modifier le wikicode]Si vous utilisez l'arborescence de production et les scripts de gestion serveurs alors la gestion d'application multiple est native.