Child pages
  • 1. Environnement technique
Socle technique

APACHE 2.4  ou HAPROXY 1.5.18

TOMCAT 7 minimum (8.5 conseillée) et inférieure à 9

MYSQL 5 minimum (5.1.73 ou 5.5.34 conseillées)

JAVA 11 minimum (depuis la 1.6.0)

ELASTICSEARCH 2 (pour pouvoir utiliser la partie "enseignant" de l'application)

Configuration Apache

  • Proxy PUSH
  • Proxy AJP
  • Module à charger : proxy_wstunnel_module
Règles de réécriture concernant le PUSH (httpd.conf) : v2 (nouvelle configuration)
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^websocket$ [NC,OR]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule .* ws://<nom>.univ.fr:20130%{REQUEST_URI} [P,L]
 
# AJP vers Tomcat
ProxyPass / ajp://<nom>.univ.fr:20139/
 
#Toujours adapter le numero de port avec la conf tomcat du server.xml. Ici : 20130 pour le connecteur HTTP et 20139 pour le connecteur AJP
En cas d'erreur "UnsupportedOperationException: La promotion (upgrade) HTTP n'est pas supporté par ce protocole"
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteRule /(.*) ws://<nom>.univ.fr:20130/$1 [P,L]
Règles de réécriture concernant le PUSH (httpd.conf) : v1 (ancienne configuration)
RewriteEngine on
RewriteCond %{QUERY_STRING} ^((?!X-Atmosphere-Transport=websocket).)*$
RewriteRule ^/PUSH(.*)$ http://<nom>.univ.fr:20130/PUSH$1 [P]
# PUSH
ProxyPass /PUSH ws://<nom>.univ.fr:20130/PUSH
ProxyPassReverse /PUSH ws://<nom>.univ-.fr:20130/PUSH
# AJP vers Tomcat
ProxyPass / ajp://<nom>.univ.fr:20139/
#Toujours adapter le numero de port avec la conf tomcat du server.xml. Ici : 20130 pour le connecteur HTTP et 20139 pour le connecteur AJP
Configuration MySQLCréer une base vide dédiée à monDossierWeb

Exemple de configuration HAProxy

load-balancé sur 4 serveurs

(avec gestion des ACLs via le fichier /etc/haproxy/acl/mdw)

    # declaration du vhost

        acl url_mdw hdr_end(host) -i mondossierweb.univ.fr

    # fichier pour gerer les acces IP

        acl acl_mdw src -i -f /etc/haproxy/acl/mdw

        # declaration regle websocket ( push)
        acl ws_mdw hdr(Upgrade) -i WebSocket
        use_backend ws_mdw if ws_mdw url_mdw acl_mdw
 
        tcp-request inspect-delay 500ms
        tcp-request content accept if HTTP

       # declaration regle http
        use_backend www_mdw if url_mdw acl_mdw
 
       backend ws_mdw

        mode http
        option forwardfor
        option http-server-close
        option forceclose
        no option httpclose

        # Cookie qui permet a chaque client de toujours utiliser le même backend
        cookie ULPWEBID insert nocache indirect
 
        # Algorythme de repartition de charge
        balance roundrobin
 
        acl hdr_connection_upgrade hdr(Connection)                 -i upgrade
        http-request deny if ! hdr_connection_upgrade
 
        # Liste des serveurs backend
        server back-lb1-mdw serveur1.univ.fr:20040 maxconn 3000 weight 10 cookie back-lb1-mdw check
        server back-lb2-mdw serveur2.univ.fr:20040 maxconn 3000 weight 10 cookie back-lb2-mdw check
        server back-lb3-mdw serveur3.univ.fr:20040 maxconn 3000 weight 10 cookie back-lb3-mdw check
        server back-lb4-mdw serveur4.univ.fr:20040 maxconn 3000 weight 10 cookie back-lb4-mdw check
 
Liens avec le SI

CAS Authentification des utilisateurs (administrateur/gestionnaire/étudiant)

LDAP Authentification des utilisateurs étudiants et optionnellement pour l'authentification des utilisateurs enseignants par groupes

SI SCOLARITÉ Apogée et ses Web Services

ELASTICSEARCH Index ElasticSearch de votre établissement répertoriant les objets Apogée indexés pour la vue de recherche.

Attention : le plugin 'river' n'étant plus disponible depuis la v2.0 d'ElasticSearch, vous devez installer une version antérieure pour utiliser l'exemple de la doc suivante

UPORTAL (facultatif) Authentification des utilisateurs enseignants via les groupes uPortal de votre ENT

SERVEUR PHOTO (facultatif) Récupération des photos des étudiants

  • No labels