Project

General

Profile

Anomalie #7831

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

Added by Lionel Morin about 7 years ago. Updated almost 7 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Category:
-
Start date:
Due date:
04/04/2014
% Done:

100%

Spent time:
Distribution:
EOLE 2.4

Related issues

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

Associated revisions

Revision 3568a49e (diff)
Added by Lionel Morin about 7 years ago

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;

Revision d0f085a3 (diff)
Added by Lionel Morin about 7 years ago

Correction des redirections pour logout (ref #7831)

Revision cd86cf51 (diff)
Added by Bruno Boiget about 7 years ago

Ajout de headers dans la configuration nginx + fonction get_proxy_url

Fixes #7831

Revision 4bdde989 (diff)
Added by Lionel Morin about 7 years ago

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

Revision 7dbf098f (diff)
Added by Bruno Boiget about 7 years ago

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

Ref #7959
Fixes #7831 @20m

History

#1 Updated by Bruno Boiget about 7 years ago

  • Due date set to 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 Updated by Bruno Boiget about 7 years ago

  • Status changed from Nouveau to Résolu
  • % Done changed from 0 to 100

#3 Updated by Bruno Boiget about 7 years ago

  • Status changed from Résolu to Réouvert

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 Updated by Bruno Boiget about 7 years ago

  • % Done changed from 100 to 90

#5 Updated by Bruno Boiget about 7 years ago

  • Status changed from Réouvert to Résolu
  • % Done changed from 90 to 100

#6 Updated by Joël Cuissinat almost 7 years ago

  • Status changed from Résolu to Fermé

Also available in: Atom PDF