Project

General

Profile

Anomalie #7831

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

Added by Lionel Morin over 7 years ago. Updated over 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 over 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 over 7 years ago

Correction des redirections pour logout (ref #7831)

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

Ajout de headers dans la configuration nginx + fonction get_proxy_url

Fixes #7831

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

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

Revision 7dbf098f (diff)
Added by Bruno Boiget over 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 over 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 over 7 years ago

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

#3 Updated by Bruno Boiget over 7 years ago

  • Status changed from Résolu to À 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 Updated by Bruno Boiget over 7 years ago

  • % Done changed from 100 to 90

#5 Updated by Bruno Boiget over 7 years ago

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

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

  • Status changed from Résolu to Fermé

Also available in: Atom PDF