Projet Socle ENT
Pages enfant
  • Tomcat en production

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.
Commentaire: Migrated to Confluence 5.3

...

Info

Ce document est un exemple de ce qui ce fait sur des serveurs de production, il n'a pas la prétention d'être LA référence.
D'ailleurs j'encourage tout personne le souhaitant à enrichir de ce document pour apporter son expérience.

...

  1. Faciliter les mises à jour ultérieures
  2. Supprimer ce qui est inutile et consommateur de ressources
  3. Sécuriser nos installations
  4. Dispose Disposer d'outils de maintenance

Pour l'exemple

...

Bloc de code
[esup@test]$ mkdir /esup
[esup@test]$ cd /esup
[esup@test]$ wget http://apache.cict.fr/tomcat/tomcat-6/v6.0.24/bin/apache-tomcat-6.0.24.tar.gz
[esup@test]$ tar -zxvf apache-tomcat-6.0.24.tar.gz
[esup@test]$ ln -s apache-tomcat-6.0.24 tomcat6
[esup@test]$ rm apache-tomcat-6.0.24.tar.gz

On a donc :

Bloc de code
 /esup/tomcat6 => /esup/apache-tomcat-6.0.24

...

Bloc de code
[esup@test]$ cd /esup
[esup@test]$ wget http://sourcesup.cru.fr/frs/download.php/2875/esup-3.1.2-esup-0.5-RC1.tar.gz
[esup@test]$ tar -zxvf esup-3.1.2-esup-0.5-RC1.tar.gz
[esup@test]$ ln -s esup-3.1.2-esup-0.5-RC1 esup-install
[esup@test]$ rm esup-3.1.2-esup-0.5-RC1.tar.gz

On a donc :

Bloc de code
 /esup/esup-install => /esup/esup-3.1.2-esup-0.5-RC1

...

Bloc de code
[esup@test]$ mkdir -p /esup/tomcat6/shared/classeclasses
[esup@test]$ mkdir -p /esup/tomcat6/shared/lib

...

Bloc de code
[esup@test]$ cp /esup/esup-install/update/Tomcat/lib/mysql-connector-java-5.1.6.jar /esup/tomcat6/lib

Balise WikiVous trouverez différents drivers dans le package \ [/esup/esup-install/update/Tomcat/lib\]

Les jar du portail (pluto)

Balise Wiki
Modifier le config du package esup \[/esup/esup-install/config.propeties ou /esup/esup-install/custom.properties\]

Bloc de code

[esup@test]$ vi /esup/esup-install/config.propeties

> tomcat.update=true

[esup@test]$ ant init deploy-ear
[esup@test]$ vi /esup/esup-install/config.propeties

> tomcat.update=false

Context Tomcat

Balise Wiki
Modifier le server.xml \[/esup/tomcat6/conf/server.xml\]

Ajouter les contextes dans le portail (Attention au 2 docBase, username, password, url a adapter)

Bloc de code

[esup@test]$ ant init deploy-ear -Dtomcat.update=true

Context Tomcat

Modifier le server.xml [/esup/tomcat6/conf/server.xml]

Ajouter les contextes dans le portail (Attention au 2 docBase, username, password, url à adapter)

Info

Pour l'utilisation de portlet, on rajoute le paramètre emptySessionPath dans le Connector ( cf. https://wiki.jasig.org/display/UPM31/01+Tomcat )

Bloc de code

<?xml version='1.0' encoding='utf-8'?><Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" 
Bloc de code

<?xml version='1.0' encoding='utf-8'?><Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.corembeans.JasperListenerGlobalResourcesLifecycleListener" />

  <Listener<Service classNamename="org.apache.catalina.mbeans.ServerLifecycleListener" /Catalina">
   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

  <Service name="Catalina">
    < <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" emptySessionPath="true" />
    <Engine name="Catalina" defaultHost="localhost">
      <Host name="localhost"  appBase="webapps"
            unpackWARs="false" autoDeploy="false"
            xmlValidation="false" xmlNamespaceAware="false">

	  <Context path=""
	 	   docBase="/esup/webapps/uPortal"
		   crossContext="true"
		   reloadable="true">
		<Resource name="jdbc/PortalDb"
			  auth="Container"
			  type="javax.sql.DataSource"
			  username="XXXXX" password="XXXXX"
			  driverClassName="com.mysql.jdbc.Driver"
			  url="jdbc:mysql://XXXX.univ.fr/XXXXX?autoReconnect=true"
			  maxActive="50" maxIdle="30" maxWait="10000"
			  poolPreparedStatements="true"
			  removeAbandoned="true"
			  removeAbandonedTimeout="300"
		/>
		<Manager pathname="" />
	  </Context>

	  <Context path="/ResourceServingWebapp"
	           docBase="/esup/webapps/ResourceServingWebapp"
		    reloadable="false">
		<Manager pathname=""/>
	  </Context>

          <Context path="/manager"
                   docBase="/esup/tomcat6/webapps/manager"
                   reloadable="false"
		   antiResourceLocking="false"
		   privileged="true">
		<Manager pathname=""/>
	  </Context>

          <!--
          <Context path="/probe"
		   docBase="/esup/webapps/probe"
		   reloadable="false"
		   privileged="true">
		<Manager pathname=""/>
	  </Context>
          -->
      </Host>
    </Engine>
  </Service>
</Server>

...

Bloc de code
[esup@test]$ cp /esup/webapps/uPortal/WEB-INF/classes/org/esupportail/portal/utils/filter/SimpleCASAuthorizationFilter.class  /esup/tomcat6/webapps/manager/WEB-INF/classes/org/esupportail/portal/utils/filter/SimpleCASAuthorizationFilter.class

web.xml du manager

Bloc de code
[esup@test]$ vi /esup/tomcat6/webapps/manager/WEB-INF/web.xml

...

Bloc de code
[esup@test]$ vi /esup/tomcat6/connfconf/logging.properties

# see http://tomcat.apache.org/tomcat-6.0-doc/logging.html
handlers = 1catalina.java.util.logging.FileHandler
.handlers = 1catalina.java.util.logging.FileHandler
.level= WARNING

1catalina.java.util.logging.FileHandler.pattern =  ${catalina.base}/logs/catalina.%g.log
1catalina.java.util.logging.FileHandler.limit = 10485760
1catalina.java.util.logging.FileHandler.count = 7
1catalina.java.util.logging.FileHandler.append=true
1catalina.java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter

# Pour avoir les lignelignes de démarrage
org.apache.catalina.startup.Catalina.level=INFO
# Pour avoir les lignelignes d'arrêt
org.apache.catalina.core.StandardService.level=INFO

# Pour avoir les manger de ce qui est fait au niveau manager
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO

Installation de LamdaProbe

 les manger de ce qui est fait au niveau manager
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO

Installation de LamdaProbe

LambdaProbe est un outil qui ressemble au manager de Tomcat mais un peu plus évolué.

Il vous permet de :

  • Lister vos contextes Tomcat
  • Redémarrer les contextes
  • Lister vos sessions et leurs contenus
  • Monitorer les sources de données
  • Voir les logs a chaud
  • Analyser les Threads
  • Voir l'utilisation de la mémoire
  • ...
    Bloc de code
    
    [esup@test]$ cd /tmp
    [esup@test]$ wget http://www.lambdaprobe.org/downloads/1.7/probe.1.7b.zip
    [esup@test]$ unzip probe.1.7b.zip
    [esup@test]$ mkdir /esup/webapps/probe
    [esup@test]$ cd /esup/webapps/probe
    [esup@test]$ unzip /tmp/probe.war
    

Context tomcat

...

Modifier le server.xml \ [/esup/tomcat6/conf/server.xml\]

Bloc de code
<Context path="/probe"
         docBase="/esup/webapps/probe"
         reloadable="false"
         privileged="true">
    <Manager pathname=""/>
</Context>

...

Bloc de code
[esup@test]$ cd /tmp
[esup@test]$ wget http://www.ja-sig.org/downloads/cas-clients/cas-client-3.1.10-release.tar.gz
[esup@test]$ tar -zxvf cas-client-3.1.10-release.tar.gz
[esup@test]$ cp cas-client-3.1.10/modules/cas-client-core-3.1.10.jar /esup/webapps/probe/WEB-INF/lib
[esup@test]$ cp cas-client-3.1.10/modules/commons-logging-1.1.jar /esup/webapps/probe/WEB-INF/lib
[esup@test]$ rm -rf /tmp/cas-client-3.1.10

[esup@test]$ cd /tmp
[esup@test]$ wget http://www.apache.org/dist/xerces/j/binaries/Xerces-J-bin.2.9.1.tar.gz
[esup@test]$ tar -zxvf Xerces-J-bin.2.9.1.tar.gz
[esup@test]$ cp xerces-2_9_1/xercesImpl.jar /esup/webapps/probe/WEB-INF/lib
[esup@test]$ rm -rf /tmp/xerces-2_9_1

[esup@test]$ cp /esup/webapps/uPortal/WEB-INF/classes/org/esupportail/portal/utils/filter/SimpleCASAuthorizationFilter.class  /esup/webapps/probe/WEB-INF/classes/org/esupportail/portal/utils/filter/SimpleCASAuthorizationFilter.class

[esup@test]$ vi /esup/webapps/probe/WEB-INF/web.xml

# se reporter à la partie "Les filtres CAS" > "Cassifier le manager Tomcat"
# se reporter à la partie "Les mappings" > "Cassifier le manager Tomcat"
# se reporter à la partie "Le Listener" > "Cassifier le manager Tomcat"

Nettoyage web.xml

Supprimer les parties :

...