IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Front et redirection


Sujet :

Apache

  1. #1
    Membre averti
    Homme Profil pro
    Expert MDE
    Inscrit en
    Janvier 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert MDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 183
    Points : 337
    Points
    337
    Par défaut Front et redirection
    Bonjour à tous,

    Voici mon souci: Je voudrai avoir un apache en front avec plusieurs tomcat derriere: un tomcat de prod, un tomcat sonar, un tomcat wiki....

    Je n'ai qu'un seul nom de domaine, et je voudrai faire en sorte que lorsque je tape "<monNomDeDomaine>/production/" j'aie une redirection vers mon tomcat de production, mais à l'url "/"

    J'arrive pour l'instant à rediriger vers le tomcat mais seulement sur l'url "/production/" avec mod_jk!

    J'ai tenté l'url rewriting, le souci c'est qu'il me redirige alors sur le "/" de l'apache (pas de bol).

    Le reverse proxying me parait plutot compliqué car la problematique du lien html (mod_proxy_html) et autre redirection est plutot lourde à gérer.

    Changer les url d'écoute des tomcat me parait un peu farfelu surtout que la plupart des tomcats ont été customisés et mis en bundle (confluence et jira par exemple) (je ne connais pas non plus le fichier où spécifier cette info).

    Le virtual host me parait interessant même si il ne donne pas exactement le même résultat.
    Auriez-vous à tout hasard un exemple fonctionnel de VirtualHost redirigeant sur deux tomcat différent suivant le nom de domaine

    exemple:
    production.nomdomaine.org me redirigerait sur mon tomcat de prod et sonar.mondomaine.org me redirigerait vers mon serveur sonar.

    Y aurait'il une solution miracle et simple pour realiser des rewriting sans redirection?

    Je vous remercies d'avance pour vos lumières. Charlie

    PS: n'hésitez pas à bien décrire la procédure, je suis débutant en conf serveur.

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Désolé mais je n'ai rien compris à la question : tu commences en disant que tu veux des URL en "<monNomDeDomaine>/production/" pour finir en donnant des exemples production.nomdomaine.org et sonar.mondomaine.org. Peux-tu redéfinir clairement le besoin et nous dire ce que tu as déjà fait ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre averti
    Homme Profil pro
    Expert MDE
    Inscrit en
    Janvier 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert MDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 183
    Points : 337
    Points
    337
    Par défaut
    Merci pour cette réponse rapide et excuses moi de ne pas avoir été assez clair.

    Ce que j'ai déjà fait:
    Tenté de config un reverse proxy ( je dis bien tenté)...
    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    #ProxyRequests off
    #ProxyPass       /production/  http://localhost:8087/
    #ProxyPass       /jira/  http://localhost:8080/
    #ProxyPass       /confluence/  http://localhost:8081/
    #ProxyPass       /nexus/  http://localhost:8084/nexus/
    #ProxyPass       /hudson/  http://localhost:8085/hudson/
    #ProxyPass       /sonar/  http://localhost:8088/
    #ProxyPass       /mysql/  http://localhost:3306/
    #ProxyHTMLURLMap http://localhost:8087 /production
    #ProxyHTMLURLMap http://localhost:8080 /jira
    #ProxyHTMLURLMap http://localhost:8081 /confluence
    #ProxyHTMLURLMap http://localhost:8084/nexus /nexus
    #ProxyHTMLURLMap http://localhost:8085/hudson /hudson
    #ProxyHTMLURLMap http://localhost:8088 /sonar
    #ProxyHTMLURLMap http://localhost:3306 /mysql
    #<Location /production/>
    #        ProxyPassReverse /
    #        SetOutputFilter  proxy-html
    #        ProxyHTMLURLMap  /      /production/
    #        ProxyHTMLURLMap  /production  /production
    #        RequestHeader    unset  Accept-Encoding
    #</Location>
    #<Location /jira/>
    #        ProxyPassReverse /jira/
    #        SetOutputFilter  proxy-html
    #        ProxyHTMLURLMap  /      /jira/
    #        ProxyHTMLURLMap  /jira  /jira
    #        RequestHeader    unset  Accept-Encoding
    #</Location>
    #<Location /confluence/>
    #        ProxyPassReverse /
    #        SetOutputFilter  proxy-html
    #        ProxyHTMLURLMap  /      /confluence/
    #        ProxyHTMLURLMap  /confluence  /confluence
    #        RequestHeader    unset  Accept-Encoding
    #</Location>
    #<Location /nexus/>
    #        ProxyPassReverse /
    #        SetOutputFilter  proxy-html
    #        ProxyHTMLURLMap  /      /nexus/
    #        ProxyHTMLURLMap  /nexus  /nexus
    #        RequestHeader    unset  Accept-Encoding
    #</Location>
    #<Location /sonar/>
    #        ProxyPassReverse /
    #        SetOutputFilter  proxy-html
    #        ProxyHTMLURLMap  /      /sonar/
    #        ProxyHTMLURLMap  /sonar  /sonar
    #        RequestHeader    unset  Accept-Encoding
    #</Location>
    #<Location /mysql/>
    #        ProxyPassReverse /
    #        SetOutputFilter  proxy-html
    #        ProxyHTMLURLMap  /      /mysql/
    #        ProxyHTMLURLMap  /mysql  /mysql
    #        RequestHeader    unset  Accept-Encoding
    #</Location>
    #<Location /hudson/>
    #        ProxyPassReverse /
    #        SetOutputFilter  proxy-html
    #        ProxyHTMLURLMap  /      /hudson/
    #        ProxyHTMLURLMap  /hudson  /hudson
    #        RequestHeader    unset  Accept-Encoding
    ...
    Ca me paraissait pas mal, mais ça ne fonctionne pas (le tomcat de prod me lance une 404 quand je clique sur le lien du manager et jira (qui fait une redirection de page d'index) me redirige vers le localhost de la machine appelante^^!).

    J'ai aussi essayé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
      LoadModule    jk_module  modules/mod_jk.so
      # Declare the module for <IfModule directive> (remove this line on Apache 2.x)
    #  AddModule     mod_jk.c
     
      # Where to find workers.properties
      # Update this path to match your conf directory location (put workers.properties next to httpd.conf)
      JkWorkersFile /usr/src/tomcat-connectors-1.2.28-src/conf/workers.properties.minimal
      # Where to put jk shared memory
      # Update this path to match your local state directory or logs directory
      JkShmFile     /var/log/httpd/mod_jk.shm
      # Where to put jk logs
      # Update this path to match your logs directory location (put mod_jk.log next to access_log)
      JkLogFile     /var/log/httpd/mod_jk.log
      # Set the jk log level [debug/error/info]
      JkLogLevel    info
      # Select the timestamp log format
      JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
      # Send everything for context /examples to worker named worker1 (ajp13)
      JkMount  /production/* worker1
    Ca ça fonctionne, mais j'atteris sur l'url "/production/" du tomcat au lieu de "/"
    (normal me direz-vous).

    Voyant que j'avais besoin de rediriger, j'ai donc rajouté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteEngine on
    RewriteRule   ^/production/$  /  [R]
    Là, je tombe sur la page de garde de l'apache et non du tomcat...


    Ce que je voudrai, au final, c'est juste un apache front qui me redirige, par le biais d'une url contenant le nom de domaine et un identifiant pour le tomcat, qui soit soi de la forme
    production.<monnomdedomaine>.org
    ou alors
    <monnomdedomaine>.org/production/
    (dans le cas du tomcat de prod).

    Aujourd'hui, la seule chose que je peux faire, c'est acceder aux tomcat directement en specifiant le port http, ce que je trouve un peu sale.

    La liaison avec les tomcat se ferait par mod_jk, le tout sans trop me prendre la tête.


    Merci d'avance pour vos conseils, Charlie

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Avec le nom (production.nomdomaine.org, etc.) c'est effectivement plus simple car il s'agit de configurer des virtual hosts et de dire à Apache de tout rediriger sur Tomcat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    NameVirtualHost *:80
    # Pour la production
    <VirtualHost *:80>
        ServerName production.nomdomaine.org
        ProxyPass /  http://localhost:8087/
        ProxyPassReverse /  http://localhost:8087/
    </VirtualHost>
     
    # Pour Jira
    <VirtualHost *:80>
        ServerName jira.nomdomaine.org
        ProxyPass /  http://localhost:8080/
        ProxyPassReverse /  http://localhost:8080/
    </VirtualHost>
     
    ...
    C'est ce qu'il y a de plus simple et ne nécessite pas de mod_proxy_html. Dis-nous si cette solution te va. Si tu ne veux ou ne peux utiliser qu'un seul nom pour toutes les applis et fonctionner à base de chemin /production/, etc., ça sera plus difficile pour moi de t'aider car je ne connais pas mod_proxy_html

    Pour info, avec RewriteRule, ce qui ne va pas c'est le flag [R] : ça force Apache à faire une redirection client sur /, d'où la page d'accueil d'Apache. Tu peux utiliser RewriteRule un peu comme ProxyPass, mais le problème restera le même : il faudra réécrire les URL contenues dans le code HTML, d'où finalement mod_proxy_html la seule autre solution viable si ce n'est vraiment pas possible de modifier le code ou le paramétrage de l'appli ou de Tomcat (as-tu par exemple essayé de déployer les applis dans des sous-répertoires portant le bon nom ?).

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Membre averti
    Homme Profil pro
    Expert MDE
    Inscrit en
    Janvier 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert MDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 183
    Points : 337
    Points
    337
    Par défaut
    Re-

    Je vais certainement opter pour cette solution (pas ce soir, on verra ça demain matin...). ce qui me gêne un peu, c'est que dans le virtual host, on touche au DNS. Ca se tient parce que c'est juste un sous domaine, mais quand même (quand on chipote, on chipote...).

    Si j'arrive à faire fonctionner la chose demain je mettrai le flag résolu, mais d'ici là si vous avez d'autres solutions je suis toujours preneur.

    En tout cas grand merci, mon serveur de collab aura bien plus de gueule demain^^.

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Je viens de regarder ta conf mod_proxy_html, elle a l'air correcte. Je suggérerais juste d'essayer d'abord de la configurer que pour 1 seul serveur (production par exemple), de la déboguer avant de passer à d'autres applis. Ce qu'il faut c'est toujours regarder le code HTML récupérer par le navigateur et le comparer au code HTML brut renvoyé par le serveur. Il me semble aussi qu'il y a des limitations avec mod_proxy_html, par exemple qu'il faut que ce soit du XHTML bien formé (mais je ne suis pas sûr) et en UTF-8. Renseigne-toi sur le sujet : si ça se trouve, toute la conf est bonne, c'est juste mod_proxy_html qui ne s'en sort pas parce qu'il n'a pas en entrée ce qu'il attend.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  7. #7
    Membre averti
    Homme Profil pro
    Expert MDE
    Inscrit en
    Janvier 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert MDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 183
    Points : 337
    Points
    337
    Par défaut
    Ma conf reverse proxy et proxy te parait elle correcte? (sans les commentaire bien sûr)

  8. #8
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Je viens de regarder ta conf mod_proxy_html, elle a l'air correcte.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  9. #9
    Membre averti
    Homme Profil pro
    Expert MDE
    Inscrit en
    Janvier 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Expert MDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 183
    Points : 337
    Points
    337
    Par défaut
    Bonjour,
    Excuses moi, je n'avais pas assez bien lu^^.

    J'ai finalement opté pour m'acheter une extension wildcard chez dyndns, ce qui m'a permis d'utiliser les virtuals hosts.
    J'en ai donc un pour chacuns de mes serveur dorénavant.

    Je vous remercies pour ces réponses qui m'ont aiguillé dans le monde insolite d'apache.
    Bonne journée, Tcharl

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Front controller avec redirection
    Par rolintoucour dans le forum Langage
    Réponses: 7
    Dernier message: 21/06/2011, 19h35
  2. affichage dans le front buffers ne marche pas!
    Par jamal24 dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/08/2003, 19h14
  3. Front End graphique pour GDB sous windows
    Par KORTA dans le forum GDB
    Réponses: 8
    Dernier message: 20/08/2003, 09h52
  4. [VB6] probleme de redirection d'une commande DOS
    Par WriteLN dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/06/2003, 09h36
  5. [reseaux] redirection de flux
    Par Olive1808 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 12/08/2002, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo