Projet

Général

Profil

Anomalie #7831

Erreur de redirection pour des appli derrière un reverse proxy nginx

Ajouté par Lionel Morin il y a presque 12 ans. Mis à jour il y a presque 12 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
Echéance:
04/04/2014
% réalisé:

100%

Temps passé:
Distribution:
EOLE 2.4

Demandes liées

Lié à eole-genconfig - Anomalie #7959: Mauvaise configuration Nginx ( Logout -> erreur 400 ) Fermé 07/04/2014 18/04/2014

Révisions associées

Révision 3568a49e (diff)
Ajouté par Lionel Morin il y a presque 12 ans

Correction des redirections derrière un reverse proxy (ref #7831)

Penser à mettre la bonne configuration nginx :

proxy_set_header   Host $host:7000;
proxy_set_header X-Forwarded-Proto $scheme;

Révision d0f085a3 (diff)
Ajouté par Lionel Morin il y a presque 12 ans

Correction des redirections pour logout (ref #7831)

Révision cd86cf51 (diff)
Ajouté par Bruno Boiget il y a presque 12 ans

Ajout de headers dans la configuration nginx + fonction get_proxy_url

Fixes #7831

Révision 4bdde989 (diff)
Ajouté par Lionel Morin il y a presque 12 ans

Suppression de la conf apache pour passer par nginx (ref #7831)

Révision 7dbf098f (diff)
Ajouté par Bruno Boiget il y a presque 12 ans

Correction de l'url de redirection dans la fonction de logout par défaut

Ref #7959
Fixes #7831 @20m

Historique

#1 Mis à jour par Bruno Boiget il y a presque 12 ans

  • Echéance mis à 04/04/2014

On rencontre un double problème lors de l'utilisation d'eoleflask derrière nginx:

le port et le protocole (http/https) ne sont pas conservés lors de l'appel à des urls

  • locales (par exemple url_for(logout) renvoie /logout dans eop) : le navigateur renvoie sur http://adresse_ip/eop/logout au lieu de https://adresse_ip:7000/eop/logout
  • même en demandant un url externe comme url_for(logout, _external=True), ou en accédant à request.url, on ne conserve pas non plus ces informations

solution trouvée pour l'instant:

  • une fonction get_proxy_url a été ajoutée à eoleflask.util pour remplacer http par https en début d'url si on détecte un header 'X-Forwarded-Proto' avec la valeur https
  • on ajoute également dans la config nginx le header "Host" = $host:7000; pour que flask conserve le port (url_for / request.url)

#2 Mis à jour par Bruno Boiget il y a presque 12 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 0 à 100

#3 Mis à jour par Bruno Boiget il y a presque 12 ans

  • Statut changé de Résolu à À valider

il manque une correction dans le cas où le plugin d'authentification utilise la fonction de logout par défaut (cas du plugin PAM utilisé par genconfig)

#4 Mis à jour par Bruno Boiget il y a presque 12 ans

  • % réalisé changé de 100 à 90

#5 Mis à jour par Bruno Boiget il y a presque 12 ans

  • Statut changé de À valider à Résolu
  • % réalisé changé de 90 à 100

#6 Mis à jour par Joël Cuissinat il y a presque 12 ans

  • Statut changé de Résolu à Fermé

Formats disponibles : Atom PDF