Projet Socle ENT
Pages enfant
  • Load Balancing (esup 4)

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.

...

Bloc de code
languagehtml/xml
titleserver.xml
...
<!-- <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" emptySessionPath="true"/> -->
...

On va ensuite rajouter un connecteur AJP qui permettra de connecter le serveur Tomcat avec le serveur Apache :

Bloc de code
languagehtml/xml
titleserver.xml
...
<Connector port="8009" address="127.0.0.1"
           enableLookups="false" redirectPort="8443" protocol="AJP/1.3" emptySessionPath="true" />
...

Le paramètre portdéfinit celui qui sera utilisé pour la connexion entre les deux serveurs. Le paramètre address n'est pas obligatoire mais est recommandé pour plus de sécurité. Il doit désigner l'adresse IP de la machine hébergeant le serveur Apache.

...

Bloc de code
languagehtml/xml
titleconf/server.xml
...
<Engine name="Catalina" defaultHost="localhost">
...

Et rajoutez-y le paramètre jvmRoute de cette façon :

Bloc de code
languagehtml/xml
titleconf/server.xml
...
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
...

 

Réglages applicatifs

Chaque Tomcat ainsi configuré va héberger une instance de l'application uPortal. Chacune de ces instance devra être configurée de façon différente, pour refléter l'adresse réelle du serveur Tomcat, en modifiant le filtre esup.properties.

Bloc de code
languagehtml/xml
titlefilters/esup.properties
...
################################################################################
## uPortal server configuration properties                                    ##
################################################################################
environment.build.uportal.server=localhost:80
environment.build.real.uportal.server=localhost:8009
environment.build.uportal.protocol=http
environment.build.uportal.context=/uPortal
environment.build.real.uportal.context=/uPortal
...

La ligne environment.build.uportal.server désigne l'adresse (et le port si nécessaire) du serveur frontal Apache.

...

Bloc de code
languagehtml/xml
titleconf/httpd.confConfiguration Apache
...
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
...

A la fin de ce fichier, on rajoutera ensuite le bloc de configuration du mod suivant :

Bloc de code
languagehtml/xml
titleconf/httpd.confConfiguration Apache
...
#Configuration du load balancing
<VirtualHost *:80>       
    ProxyRequests Off  

    <Proxy balancer://portal>
        BalancerMember ajp://tomcat1.ent.fr:8009 route=tomcat1 loadfactor=1
        BalancerMember ajp://tomcat2.ent.fr:8010 route=tomcat2 loadfactor=1
        ProxySet lbmethod=bytraffic
        ProxySet stickysession=ROUTEID
    </Proxy>
    ProxyPass / balancer://portal/  
    
     <Location /balancer-manager>
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1 
      SetHandler balancer-manager
    </Location>
    
</VirtualHost>
...

<VirtualHost> permet de définir un hôte virtuel pour lequel les paramètres de balancing seront appliqués. Plusieurs hôtes peuvent être configurés avec des stratégies différentes.

...