Projet

Général

Profil

Anomalie #1988

eole-web et eole-reverseproxy ne fonctionne pas par défaut ensemble

Ajouté par Emmanuel GARETTE (2) il y a plus de 12 ans. Mis à jour il y a plus de 12 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
24/08/2011
Echéance:
% réalisé:

100%

Temps passé:
Distribution:
EOLE 2.3

Description

Si on installe eole-web et eole-reverseproxy sur la même machine (EOLE 2.3), eole-reverseproxy n'est pas configurable facilement.

Sur AmonEcole il est possible de le faire facilement avec la variable revprox_container_domain. Mais elle n'est disponible que dans le dictionnaire 50-amonecole.xml.

Je propose de rappartrier cette question dans 25_nginx.xml (donc il faut la supprimer dans 50_amonecole.xml).

J'ai mis un calcul automatique sur le nom de domaine du serveur web en reprenant le contenu de la variable "nom_domaine_local". J'avoue ne plus comprendre l'histoire du domaine local et académique ...

Enfin eole-firewall n'est pas géré correctement.

--- 25_nginx.xml.old    2011-08-24 22:04:20.222274033 +0200
+++ 25_nginx.xml    2011-08-24 22:42:43.522258160 +0200
@@ -8,6 +8,7 @@
         <file name='/var/www/nginx-default/nginx.html' source='nginx.html'/>
         <file name='/var/www/index.html' source='nginx.no_proxy.html'/>
         <file name="/var/www/wpad.dat" mode='775'/>
+        <file name="/usr/share/eole/firewall/00_root_reverseproxy.fw" />
         <!--<file name="/etc/squid/domaines_noauth_acad"/>
         <file name="/etc/squid/domaines_nocache_acad"/>
         <file name="/etc/nginx/sites-enabled/access_proxy"/>-->
@@ -15,11 +16,15 @@
     <!--************************************************************************************************* -->
     <variables>
         <family name='services'>
+            <variable name='activer_apache' type='oui/non' description="Activer le serveur web Apache" hidden='True' exists='False'>
+                <value>non</value>
+            </variable>
             <variable name='activer_revprox' type='oui/non' description='Activer le reverse proxy Nginx'>
                 <value>non</value>
             </variable>
         </family>
         <family name='Reverse proxy' hidden='True'>
+            <variable name='revprox_container_domain' type='string' description="Nom de domaine du serveur web" />
             <variable name='revprox_sso' type='string' description="Nom de domaine du serveur SSO" />
             <variable name='revprox_poshadmin' type='string' description="Nom de domaine du serveur d'administration Envole 2" />
             <variable name='revprox_ead' type='string' description="IP du Scribe" hidden='True' />
@@ -46,6 +51,7 @@
         <separators>
             <separator name='revprox_sso'>Redirection de services particuliers</separator>
             <separator name='revprox_activate_http'>Redirection HTTP et HTTPS</separator>
+            <separator name='revprox_container_domain'>Redirection vers le serveur web local</separator>
         </separators>
     </variables>
     <constraints>
@@ -58,11 +64,18 @@
         <auto target='revprox_ead' name='auto_copy_val'>
             <param type='eole'>revprox_poshadmin</param>
         </auto>
+        <fill name='calc_val' target='revprox_container_domain'>
+            <param type='eole' name='valeur'>nom_domaine_local</param>
+        </fill>
         <!-- **** Conditions **** -->
         <condition name='hidden_if_in' source='activer_revprox'>
             <param>non</param>
             <target type='family'>Reverse proxy</target>
         </condition>
+        <condition name='hidden_if_in' source='activer_apache'>
+            <param>non</param>
+            <target type='variable'>revprox_container_domain</target>
+        </condition>
     <!-- **** Groupes **** -->
         <group master='revprox_domainname'>
             <slave>revprox_rep</slave>

et le fichier 00_root_reverseproxy.fw

%if %%revprox_activate_http == 'oui' or (%%is_defined('container_ip_web') and %%revprox_container_domain != '')
allow_dest(interface='eth0', ip='0/0', port='80')
allow_dest(interface='eth0', ip='0/0', port='443')
%end if

Demandes liées

Lié à conf-amon - Anomalie #1989: eole-reverseproxy démarre wpad même si le proxy n'est pas sur la machine Fermé 24/08/2011
Lié à conf-scribe - Anomalie #1987: eole-web sans annuaire et avec reverseproxy Fermé 24/08/2011
Lié à conf-amonecole - Anomalie #2143: eole-web et eole-reverseproxy ne fonctionne pas par défaut ensemble Fermé 24/08/2011

Révisions associées

Révision b3544892 (diff)
Ajouté par Daniel Dehennin il y a plus de 12 ans

eole-web et eole-reverseproxy ne fonctionne pas par défaut ensemble (Fixes: #1988).

  • reverseproxy/dicos/25_nginx.xml: Add a variable to ask to configure
    automatically the reverse proxy on local web applactions.
    Add reverseproxy firewall management in root container.
  • reverseproxy/tmpl/00_root_reverseproxy.fw: Configure firewall for
    reverseproxy.
  • reverseproxy/tmpl/nginx.default: Configure reverseproxy for local web
    applications.

Historique

#1 Mis à jour par Emmanuel GARETTE (2) il y a plus de 12 ans

Je ne sais pas trop comment lier le bug ... j'ai l'impression qu'un utilisateur simple ne peut pas.

Donc il faut lier au bug #1987 et #1861

#2 Mis à jour par Emmanuel GARETTE (2) il y a plus de 12 ans

Changement de stratégie ;)

Après réflection on a plusieurs sénarios :

  1. eole-web tout seul et désactivé
  2. eole-web tout seul et activé
  3. eole-web désactivé + eole-reverseproxy désactivé
  4. eole-web activé + eole-reverseproxy désactivé
  5. eole-web désactivé + eole-reverseproxy activé
  6. eole-web activé + eole-reverseproxy activé

Sur les 6, 1 et 3 peut être considéré comme identique tout comme 2 et 4.

Nous aurions donc :

  1. eole-web tout seul et désactivé eole-web désactivé + eole-reverseproxy désactivé

firewall fermé

  1. eole-web tout seul et activé eole-web activé + eole-reverseproxy désactivé

ouvre firewall web + web_url + pas firewall reverseproxy

  1. eole-web désactivé + eole-reverseproxy activé

pas firewall web + ouvre firewall reverseproxy + revprox_container_domain

  1. eole-web activé + eole-reverseproxy activé

pas firewall web + ouvre firewall reverseproxy + revprox_container_domain == web_url

Ce qui donne :

Suppression de revprox_container_domain.

--- 20_web.xml.old    2011-08-25 09:36:42.716750895 +0200
+++ 20_web.xml    2011-08-25 09:38:06.876724896 +0200
@@ -26,6 +26,9 @@
             <variable name='activer_apache' type='oui/non' description="Activer le serveur web Apache" >
                 <value>oui</value>
             </variable>
+            <variable name='activer_revprox' type='oui/non' description='Activer le reverse proxy Nginx' hidden='True'>
+                <value>non</value>
+            </variable>
             <variable name='adresse_ip_web' type='ip' hidden='True' description="Adresse IP du conteneur web"/>
         </family>
         <family name='applications web'>
--- 25_nginx.xml.old    2011-08-24 22:04:20.222274033 +0200
+++ 25_nginx.xml    2011-08-25 10:04:04.216717688 +0200
@@ -8,6 +8,7 @@
         <file name='/var/www/nginx-default/nginx.html' source='nginx.html'/>
         <file name='/var/www/index.html' source='nginx.no_proxy.html'/>
         <file name="/var/www/wpad.dat" mode='775'/>
+        <file name="/usr/share/eole/firewall/00_root_reverseproxy.fw" />
         <!--<file name="/etc/squid/domaines_noauth_acad"/>
         <file name="/etc/squid/domaines_nocache_acad"/>
         <file name="/etc/nginx/sites-enabled/access_proxy"/>-->
@@ -15,9 +16,14 @@
     <!--************************************************************************************************* -->
     <variables>
         <family name='services'>
-            <variable name='activer_revprox' type='oui/non' description='Activer le reverse proxy Nginx'>
+            <variable name='activer_apache' type='oui/non' description="Activer le serveur web Apache" hidden='True' exists='False'>
                 <value>non</value>
             </variable>
+            <variable name='activer_revprox' type='oui/non' description='Activer le reverse proxy Nginx' exists='False'>
+                <value>non</value>
+            </variable>
+                <!--si existe dans web.xml, on le décache (#1988)-->
+            <variable name='activer_revprox' redefine='True' hidden='False' />
         </family>
         <family name='Reverse proxy' hidden='True'>
             <variable name='revprox_sso' type='string' description="Nom de domaine du serveur SSO" />
--- 00_web.fw.old    2011-08-24 17:16:35.155966814 +0200
+++ 00_web.fw    2011-08-25 09:43:25.956747983 +0200
@@ -1,7 +1,11 @@
 %if %%activer_apache == 'oui'
+%if %%activer_revprox' == 'non'
 allow_src(interface='eth0', ip="0/0", port='80')
 allow_src(interface='eth0', ip="0/0", port='443')
+%end if
+%if %%is_defined('container_ip_annuaire')
 allow_dest(interface='eth0', container='annuaire', port='389')
+%end if
 %if %%activer_sso == 'local'
 allow_dest(ip='%%adresse_ip_eth0', port='%%eolesso_port')
 %elif %%activer_sso == 'distant'
--- nginx.default.old    2011-08-24 17:36:38.832462158 +0200
+++ nginx.default    2011-08-25 09:51:08.412747920 +0200
@@ -15,6 +15,7 @@
 proxy_buffers   6 32k;
 proxy_busy_buffers_size   32k;

+%if %%is_defined('container_ip_proxy')
 # erreur pour le proxy
 server {
 %if %%mode_conteneur_actif != 'non'
@@ -92,6 +93,7 @@
         deny all;
     }
 }
+%end if

 %set %%dom_dict={}
 %if %%revprox_activate_http == 'oui'
@@ -100,8 +102,8 @@
 %end for
 %end if % if %%revprox_activate_http == 'oui'

-%if %%is_defined('revprox_container_domain') and %%is_defined('container_ip_web') and %%revprox_container_domain != ''
-%%dom_dict.setdefault(%%revprox_container_domain, []).append(('/', 'redirige vers https', 'oui', 'https://'+%%container_ip_web))
+%if %%is_defined('web_url')
+%%dom_dict.setdefault(%%web_url, []).append(('/', 'redirige vers https', 'oui', 'https://'+%%container_ip_web))
 %end if

 %for %%revprox_iter in %%dom_dict.keys()

Le fichier 00_root_reverseproxy.fw :

%if %%revprox_activate_http == 'oui' or (%%activer_apache == 'oui' and %%activer_revprox' == 'oui')
allow_dest(interface='eth0', ip='0/0', port='80')
allow_dest(interface='eth0', ip='0/0', port='443')
%end if

+ la suppression de la partie AmonEcole.
+ un fill de web_url sur le nom de domaine de la machine plutôt que sur l'IP serait mieux.

#3 Mis à jour par Joël Cuissinat il y a plus de 12 ans

  • Assigné à mis à Emmanuel GARETTE
  • Version cible mis à Mises à jour 2.3 - 02 RC

vivement que tu reviennes le faire ;)

#4 Mis à jour par Daniel Dehennin il y a plus de 12 ans

  • Assigné à Emmanuel GARETTE supprimé

Pourquoi ajouter la variable « activer_revprox » dans le paquet eole-web.

Si c’est pour l’utiliser dans le template « 00_web.fw », ne peut-on pas utiliser %%is_defined() en plus de %if...== 'oui'/'non' ?

#5 Mis à jour par Joël Cuissinat il y a plus de 12 ans

  • Assigné à mis à Daniel Dehennin

#6 Mis à jour par Daniel Dehennin il y a plus de 12 ans

  • Statut changé de Nouveau à En attente d'informations
  • % réalisé changé de 0 à 20

Emmanuel GARETTE a écrit :

[...]

--- 25_nginx.xml.old    2011-08-24 22:04:20.222274033 +0200
+++ 25_nginx.xml    2011-08-25 10:04:04.216717688 +0200
@@ -8,6 +8,7 @@
         <file name='/var/www/nginx-default/nginx.html' source='nginx.html'/>
         <file name='/var/www/index.html' source='nginx.no_proxy.html'/>
         <file name="/var/www/wpad.dat" mode='775'/>
+        <file name="/usr/share/eole/firewall/00_root_reverseproxy.fw" />
         <!--<file name="/etc/squid/domaines_noauth_acad"/>
         <file name="/etc/squid/domaines_nocache_acad"/>
         <file name="/etc/nginx/sites-enabled/access_proxy"/>-->

--- nginx.default.old    2011-08-24 17:36:38.832462158 +0200
+++ nginx.default    2011-08-25 09:51:08.412747920 +0200
@@ -100,8 +102,8 @@
 %end for
 %end if % if %%revprox_activate_http == 'oui'

-%if %%is_defined('revprox_container_domain') and %%is_defined('container_ip_web') and %%revprox_container_domain != ''
-%%dom_dict.setdefault(%%revprox_container_domain, []).append(('/', 'redirige vers https', 'oui', 'https://'+%%container_ip_web))
+%if %%is_defined('web_url')
+%%dom_dict.setdefault(%%web_url, []).append(('/', 'redirige vers https', 'oui', 'https://'+%%container_ip_web))
 %end if

 %for %%revprox_iter in %%dom_dict.keys()

Le fichier 00_root_reverseproxy.fw :

%if %%revprox_activate_http == 'oui' or (%%activer_apache == 'oui' and %%activer_revprox' == 'oui')
allow_dest(interface='eth0', ip='0/0', port='80')
allow_dest(interface='eth0', ip='0/0', port='443')
%end if

+ la suppression de la partie AmonEcole.
+ un fill de web_url sur le nom de domaine de la machine plutôt que sur l'IP serait mieux.

Au final, pour cette demande, il ne reste que les patches ci-dessus, le reste étant fait dans #1987 et #1989.

Pour le patch sur nginx.default, ne faut-il pas tester si eole-web est activé et si eole-reverseproxy est activé pour ajouter web_url ?

#7 Mis à jour par Daniel Dehennin il y a plus de 12 ans

  • Projet changé de conf-scribe à conf-amon

Les patches ne s’appliquent qu’au reverse proxy, le reste était traité dans d’autres demandes.

#8 Mis à jour par Daniel Dehennin il y a plus de 12 ans

  • Statut changé de En attente d'informations à Résolu
  • % réalisé changé de 20 à 100

#9 Mis à jour par Fabrice Barconnière il y a plus de 12 ans

  • Statut changé de Résolu à Fermé
  • Distribution mis à EOLE 2.3

#10 Mis à jour par Emmanuel GARETTE il y a plus de 12 ans

  • Statut changé de Fermé à Nouveau
  • Version cible changé de Mises à jour 2.3 - 02 RC à Mises à jour 2.3 - 03 RC

Pour que la redirection nginx fonctionne il faut :
- activer nginx (ce qui n'est pas le cas par défaut sur AmonEcole ;
- activer "Activer le reverse proxy Nginx pour http/https" ;
- comme on a des valeurs obligatoires, mettre des valeurs bidons (sauf si on a un besoin particulier) en faisant attention que ca n'écrase pas la configuration qu'on veut.

Ce n'est pas pratique.

#11 Mis à jour par Daniel Dehennin il y a plus de 12 ans

  • Statut changé de Nouveau à Résolu

La dépendence de revprox_auto_config_local_web sur revprox_activate_http a disparu depuis le da51807.

Un paquet eole-reverseproxy 2.3-eole90 contient la modification (voir 0d5a0c3)

#12 Mis à jour par Fabrice Barconnière il y a plus de 12 ans

  • Statut changé de Résolu à Fermé

Formats disponibles : Atom PDF