Webcontrat - Reverse Proxy

De Wiki_DR13
Révision datée du 10 juin 2015 à 15:21 par Julien.garnier (discussion | contributions) (Fichiers de conf)
Aller à : navigation, rechercher

C'est le reverse proxy qui gère :

  • l'authentification via shibboleth
  • le load balancing via mod_proxy de apache.


Shibboleth

Comme habituellement, fichier de conf /etc/shibboleth/shibboleth2.xml

  • La def du fichier est la suivante :
    • default : vers janus.cnrs.fr
    • formation : authentification sur idp de prod (janus) (idp de formation complexe, il faut créer les compte a la main)
    • rec : authentification sur IDP de recette
    • dev : authentification sur IDP de recette (dev pas accessible hors DSI)

Logs

les logs sont dans le syslog ou /var/log/shibboleth/


Pour regler la finesse des logs dans /var/log/shibboleth/ editer le fichier /etc/shibboleth/shibd.logger et mettre :

log4j.rootCategory=DEBUG, shibd_log, warn_log

Mettre a DEBUG les lignes suivantes au besoin


redémarrer shibboleth :

service shibd restart


Apache

Attention, version 2.4 !


Sites

Tout est géré dans les 5 fichiers de conf dans /etc/apache2/sites-available

Pour activer / desactiver un site, utiliser les commandes

a2ensite nom_du_fichier
a2dissite nom_du_fichier

respectivement


Fichiers de conf

Ex du fichier de prod :

Le fichier est classique, focus sur les parties non conventionnelles :

On veut gerer les affichages d'erreur perso, il ne faut pas proxyfier ces requêtes (le ! désactive le proxy):

ProxyPass /error/ !
ProxyErrorOverride On
ErrorDocument 503 /error/erreurDispo.html
ErrorDocument 504 /error/erreurDispo.html


  1.  On envoie l'adresse source aux serveurs web :
ProxyPreserveHost On

On ne veux pas que les clients se baladent d'un serveur a l'autre, on fixe l'acces vers un serveur via un cookie valable le temps de la session :

  1. insert d'un cookie pour le choix de la route :
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED


On défini un objet cluster utilisable par la suite

  1. Cluster de PROD :
<Proxy "balancer://prod">
   BalancerMember "http://10.30.0.11:80" route=1
   BalancerMember "http://10.30.0.12:80" route=2
   ProxySet stickysession=ROUTEID
</Proxy>