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 →Duplication de Tomcat : copie+orga
→Serveurs Tomcat : port à changer: shutdown et redirect
Ligne 26 : Ligne 26 :


== Serveurs Tomcat ==
== Serveurs Tomcat ==
On va déployer un serveur pour gérer les scripts et un pour faire le service web
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.
 
{{figureShell|
{{figureShell|
<pre>
<pre>
HTTP: 8080 # par défaut
<Server port="8005" shutdown="SHUTDOWN">
AJP: 8009 # par défaut
...
    <Connector port="8080" protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443" emptySessionPath="true" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" emptySessionPath="true" />
</pre>
</pre>
|caption=Ports d'écoute pour l'application de '''front'''}}
|caption=Ports d'écoute pour l'application de '''front'''}}
{{figureShell|<pre>
{{figureShell|<pre>
HTTP: 9090 # par défaut
<Server port="9005" shutdown="SHUTDOWN">
AJP: 9009 # par défaut
...
    <Connector port="9090" protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="9443" emptySessionPath="true" />
    <Connector port="9009" protocol="AJP/1.3" redirectPort="9443" emptySessionPath="true" />
</pre>
</pre>
|caption=Ports d'écoute pour l'application de '''back'''}}
|caption=Ports d'écoute pour l'application de '''back'''}}

Version du 20 avril 2012 à 15:13

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.

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

  • mettre à jour les scripts de redémarage de tomcat flushAndRestart, restartTomcat
  • modifier le ~/.bashrc pour que les commandes de redémarrage gère plusieurs Tomcat:
tomcatFolder="$HOME/apps/tomcat6" # dossier de l'application tomcat

#alias tomcatBin="cd $tomcatFolder/bin"
#alias tomcatConf="cd $tomcatFolder/lib/tomcat6"

function tomcat-log() {
    tailf "${tomcatFolder}-$1/logs/catalina.out" # log tomcat
}

alias restartTomcat="sh ~/shell-scripts/restartTomcat.sh $1" # arrête tomcat, supprime le fichier .pid et redémarre
alias flushAndRestart="sh ~/shell-scripts/flushTomcatCache.sh $1 && sh ~/shell-scripts/restartTomcat.sh $1" # arrête Tomcat, nettoie work/ et temp/ et redémarre