Vous regardez une version antérieure (v. /wiki/pages/viewpage.action?pageId=258343028) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 19) afficher la version suivante »

Mise en frontal d'un serveur Apache

Quelques esplications à propos du schéma ci-dessus

  • Les flèches représentent les liens et le protocole utilisé
  • Le texte en couleur représente l'adresse de l'entité de la même couleur
  • L'emplacement des "mod_..." et des propriétés "uportal.propriete" représente l'emplacement de stockage de l'information
  • Le source du schéma est disponible en PJ (Logiciel DIA nécessaire)

Les instructions ci-dessous permettent de connecter un serveur Apache frontal sur une instance uPortal.

Deux cas seront distingués :

  • Un mode simple où le serveur Apache n'est connecté qu'à un serveur applicatif hébergeant uPortal,
  • Un mode de load balancing, où le serveur Apache redistribue les requêtes entre plusieurs serveurs en fonction de la charge.

Mode Simple

On est dans le cas de figure d'une architecture composée d'un serveur Apache et d'un serveur applicatif (Tomcat).

Configuration de l'application

On va commencer par configurer l'instance de l'application en modifiant le fichier esup.properties.

filters/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.

La ligne environment.build.real.uportal.server désigne l'adresse réelle de l'application, à savoir l'adresse (et le port si nécessaire) du serveur applicatif.

Les lignes environment.build.uportal.context et environment.build.real.uportal.context permettent de définir la racine du contexte de l'application, respectivement sur le serveur frontal et sur le serveur applicatif.

Enfin, le paramètre environment.build.uportal.protocol permet de définir le protocole utilisé pour se connecter à l'application (http/https).

 

Configuration du serveur Tomcat

On va ensuite modifier le fichier server.xml configurant le serveur Tomcat.

Dans un premier temps, on va commenter le connecteur du port http par défaut (8080) :

server.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 :

server.xml
...
<Connector port="8009" address="127.0.0.1"
           enableLookups="false" redirectPort="8443" protocol="AJP/1.3" emptySessionPath="true"/>
...

Le paramètre port dé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.

Si le serveur Apache est situé sur la même machine que le serveur Tomcat, la valeur 127.0.0.1 assurera plus de sécurité que la valeur par défaut (0.0.0.0).

 

Configuration du serveur Apache

Maintenant que le serveur Tomcat est configuré pour recevoir les requêtes du serveur Apache, il faut configurer ce dernier pour les transmettre au bon port, via le protocole AJP. La configuration va se faire par le fichier de configuration d'Apache.

Pour permettre la communication entre les deux serveurs, on utilisera 2 modules :

  • le mod_proxy
  • le mod_proxy_ajp, qui autorisera l'utilisation du protocole AJP.

L'activation de ces modules se fera en dé-commenter les deux lignes suivantes, ou en les ajoutant si elles ne sont pas présentes :

Fichier de configuration Apache
...
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
...

Une fois ces deux modules activés, on va rajouter à la fin du fichier la configuration nécessaire au bon fonctionnement du mod proxy_ajp :

Fichier de configuration Apache
#Configuration du mod_proxy_ajp pour le frontal
<VirtualHost *:80>
    ...
    ProxyRequests Off
    ProxyPass         / ajp://localhost:8009/
    ...
</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.

La ligne ProxyPass se décompose en deux paramètres importants :

  • / qui désigne l'URL à rediriger de l'hôte virtuel du serveur Apache vers Tomcat. Ici, / redirigera toutes les requêtes.
  • ajp://localhost:8009/ qui désigne l'adresse vers laquelle rediriger la requête. localhost définit l'adresse du serveur Tomcat, et le port (ici 8009) doit être identique à celui configuré dans le connecteur AJP de la configuration du serveur Tomcat.

     

Au redémarrage des deux serveurs, la configuration sera mise en place. En accédant à l'url http://localhost/uPortal, on devrait donc arriver à la page d'accueil du portail.

Cette configuration du ProxyPass redirige toutes les requêtes vers un seul et unique serveur Tomcat. Si les différents éléments du portail sont installés sur plusieurs serveurs, il convient de détailler chaque module sur le modèle suivant :

Fichier de configuration Apache
ProxyPass /uPortal/ ajp://tomcat1:8009/uPortal/
ProxyPass /BookmarksPortlet/ ajp://tomcat2:8009/BookmarksPortlet/
ProxyPass /FunctionalTestsPortlet/ ajp://tomcat2:8009/FunctionalTestsPortlet/
ProxyPass /NewsReaderPortlet/ ajp://tomcat2:8009/NewsReaderPortlet/
ProxyPass /NotificationPortlet/ ajp://tomcat2:8009/NotificationPortlet/
ProxyPass /ResourceServingWebapp/ ajp://tomcat1:8009/ResourceServingWebapp/
ProxyPass /SimpleContentPortlet/ ajp://tomcat2:8009/SimpleContentPortlet/
ProxyPass /WeatherPortlet/ ajp://tomcat2:8009/WeatherPortlet/
ProxyPass /WebProxyPortlet/ ajp://tomcat2:8009/WebProxyPortlet/
ProxyPass /cas/ ajp://tomcat3:8009/cas/
ProxyPass /cas-proxy-test-portlet/ ajp://tomcat3:8009/cas-proxy-test-portlet/
ProxyPass /jasig-widget-portlets/ ajp://tomcat2:8009/jasig-widget-portlets/
ProxyPass /pluto-testsuite/ ajp://tomcat2:8009/pluto-testsuite/

La configuration ci-dessus reprend les éléments de base du package uPortal : à chaque nouvelle portlet, il faudra ajuster ces paramètres pour que son chemin d'accès soit également redirigé vers le bon serveur.

Load Balancing

La configuration du load balancing via un serveur Apache est détaillée sur cette page.

 

  • Aucune étiquette