Projet

Général

Profil

Scénario #18551

Nginx doit servir de reverse proxy pour des applications locales et distantes

Ajouté par Daniel Dehennin il y a environ 9 ans. Mis à jour il y a environ 9 ans.

Statut:
Terminé (Sprint)
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
24/01/2017
Echéance:
10/02/2017
% réalisé:

100%

Temps estimé:
(Total: 12.00 h)
Temps passé:
(Total: 15.50 h)
Points de scénarios:
5.0
Restant à faire (heures):
0.00 heure
Estimation basée sur la vélocité:
Release:
Liens avec la release:
Auto

Description

Problème

Les applications web EOLE ne sont accessibles que sur des ports exotiques.

Il faut les rendre accessibles depuis les ports standards 80 et 443.

Propositions

  • Les applications écoutent sur 127.0.0.1 sur un port exotique
  • Il faut mettre en place un reverse proxy
    • écoute sur les ports 80 et 443 des IP de la machines
    • redirige les connexions à des chemins vers les applications respectives

Modifier eole-reverseproxy

Nous pouvons modifier eole-reverseproxy afin de le rendre utilisable sur tous les modules :

  • Il faut pouvoir définir des hôtes virtuelles avec leurs noms, IPs et ports d’écoute
  • Il faut pouvoir associer des applications à des hôtes virtuelles, une application peut-être définie par :
    • Des fichiers de configuration (upstream.d/, web.d) et un mécanisme de lien symbolique
    • Une déclaration gen_config à la manière du reverse proxy actuel sur Amon
      • Un répertoire à rediriger
      • Une URI de destination
      • La gestion des protocoles HTTP (oui, non, rediriger vers HTTPs) et HTTPs (oui, non)
  • Il faut pouvoir définir l’hôte virtuel par défaut, c’est à dire rediriger les noms inconnus vers un hôte virtuel particulier
  • Il faut pouvoir définir une application racine par hôte virtuel

Le mécanisme de création de lien symbolique peut-être :

  • Un script posttemplate
  • Une nouvelle méthode de service nginx dans python-pyeole
    • Méthode : nginx
    • La liste des hôtes virtuelles où sera déclaré cette application
      <service method='nginx' web_domains='gen_config_domains' servicelist='gen_config'>gen_config</service>
      
  • Une nouvelle méthode de service web dans python-pyeole
    • Une nouvelle méthode de service : web
    • Un type de serveur supporté : nginx, apache, pourrait être défini au niveau du module ou être détectée automatiquement
    • La liste des hôtes virtuelles où sera déclaré cette application
      <service method='web' type='nginx' web_domains='gen_config_domains' servicelist='gen_config'>gen_config</service>
      

Chaque application web n’aurait dans ce cas que deux intégrations :

  • eole-reverseproxy
  • eole-web

Créer un nouveau service

Ce nouveau service serait utilisé sur tous les modules sauf Amon et Scribe et ne se limite qu’au cas minimum :

  • Un seul hôte virtuel
    • web_url s’il est définie
    • ou nom_domaine_machine
  • Uniquement des applications locales avec fichiers de configuration (upstream.d/, web.d)

Chaque application web aurait dans ce cas trois intégrations :

  • eole-reverseproxy
  • eole-web
  • ce nouveau service

Sous-tâches

Tâche #18837: Définir une nouvelle méthode de service nginxNe sera pas résoluDaniel Dehennin

Tâche #18840: Faire la configuration pour genconfigFerméDaniel Dehennin

Tâche #18879: Retravailler la configuration nginx pour supporter la publication d’application webFerméDaniel Dehennin


Demandes liées

Lié à Distribution EOLE - Scénario #18408: Etablir une config paramétrable de NGINX pour servir les applications WEB sur les port 80 et 443 Terminé (Sprint) 19/12/2016 02/01/2017

Historique

#1 Mis à jour par Daniel Dehennin il y a environ 9 ans

  • Lié à Scénario #18408: Etablir une config paramétrable de NGINX pour servir les applications WEB sur les port 80 et 443 ajouté

#2 Mis à jour par Daniel Dehennin il y a environ 9 ans

  • Sujet changé de Nginx doit service de reverse proxy pour des applications locales et distantes à Nginx doit servir de reverse proxy pour des applications locales et distantes

#3 Mis à jour par Scrum Master il y a environ 9 ans

  • Tracker changé de Proposition Scénario à Scénario
  • Echéance mis à 10/02/2017
  • Version cible mis à sprint 2017 4-6 Equipe MENSR
  • Début mis à 23/01/2017
  • Release mis à EOLE 2.6.1
  • Points de scénarios mis à 5.0

#4 Mis à jour par Scrum Master il y a environ 9 ans

  • Assigné à mis à force verte

#5 Mis à jour par Daniel Dehennin il y a environ 9 ans

Adapter eole-reverseproxy en version minimale.

#6 Mis à jour par Daniel Dehennin il y a environ 9 ans

  • Statut changé de Nouveau à Terminé (Sprint)

Formats disponibles : Atom PDF