TODO
| Info | ||
|---|---|---|
| ||
https://wiki.jasig.org/display/UPM40/Fronting+Tomcat+with+Apache+HTTP+Server |
Les instructions ci-dessous permettent de connecter un serveur Apache frontal sur une instance uPortal.
| Remarque |
|---|
Deux cas seront distingués :
|
Mode Simple
On est dans le cas de figure d'une architecture composée d'un serveur Apache et d'un serveur applicatif (Tomcat).
Application
On va commencer par configurer l'instance de l'application en modifiant le fichier esup.properties.
| Bloc de code | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
################################################################################
## 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.protocolpermet de définir le protocole utilisé pour se connecter à l'application (http/https).
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) :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
<!-- <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 | ||||
|---|---|---|---|---|
| ||||
<Connector port="8009" address="127.0.0.1"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> |
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.
| Avertissement |
|---|
| 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). |
Serveur Apache
Maintenant que le serveur Tomcat est configuré pour recevoir les requetes du serveur Apache, il faut configurer ce dernier pour les transmettre au bon port. Cela va se faire via le protocole AJP, via le mod_proxy_ajp d'Apache. La configuration va se faire par le fichier httpd.conf d'Apache.
On va commencer par dé-commenter les deux lignes suivantes, pour activer le chargement des modules proxy et proxy_ajp.
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
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 :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
#Configuration du mod_proxy_ajp pour le frontal
ProxyRequests Off
ProxyPass /uPortal ajp://localhost:8009/uPortal retry=0 |
La ligne ProxyPass se décompose en deux paramètres importants :
- /uPortal qui désigne l'URL à rediriger appelée sur le serveur Apache ,
ajp://localhost:8009/uPortal qui désigne l'adresse vers laquelle rediriger la requête. Le port (8009 ici) doit être identique à celui configuré dans 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.
Load Balancing
| Info |
|---|
| La configuration du load balancing via un serveur Apache est détaillée sur cette page. |