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 :

Comment servir les pages d'un autre serveur d'après les paramètres ?


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Par défaut Comment servir les pages d'un autre serveur d'après les paramètres ?
    Salut,

    Excusez moi pour le titre un peu bizarre, mais j'ai vraiment du mal à exprimer le problème en une phrase.
    En pratique, on a divers services fournis par divers serveurs Apache.
    On voudrait rendre certains accessible à l'Internet.

    On dispose d'un serveur qui est accessible depuis l'Internet. On voudrait donc que ce serveur serve les pages de certains autres, de manière transparente (comme un proxy).

    Le truc, c'est qu'on ne peut pas disposer de sous domaines.
    La question est donc... est ce possible?

    Schématiquement, on veut que si Jean tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.domaine_externe.com/service1
    qu'il reçoive le contenu du serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://service1.domaine_interne.com/
    sans pour autant qu'il soit redirigé vers un autre serveur (forcément, ça ne fonctionnerait pas).
    Est ce possible et comment?

  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
    Par défaut
    Oui c'est possible et tu as donné toi-même la solution : configurer un proxy. Pour être précis, c'est un reverse proxy mais c'est du détail. Il faut tout simplement utiliser mod_proxy. C'est très simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ProxyPass /service1 http://service1.domaine_interne.com/
    ProxyPassReverse /service1 http://service1.domaine_interne.com/

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Par défaut
    Salut,

    Merci pour ta réponse. J'ai regardé un peu autours et j'en suis arrivé à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <VirtualHost *:*>
     ProxyPreserveHost On
     ProxyPass /service1 http://service1.domaine_interne.com/
     ProxyPassReverse /service1 http://service1.domaine_interne.com/
     </VirtualHost>
    Du coup, si je tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.domaine_externe.com/service1
    dans mon navigateur je reçois bien le contenu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://service1.domaine_interne.com/
    .
    Par contre, si je tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.domaine_externe.com/service1/annexe2
    je suis redirigé vers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.domaine_externe.com/annexe2
    qui n'existe pas donc je reçois une erreur 404 au final.

    Que manque t'il?

  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
    Par défaut
    A confirmer en regardant les logs d'accès du service service1.domaine_interne.com mais je dirais que c'est service1.domaine_interne.com qui fait la redirection.

  5. #5
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    348
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 348
    Par défaut
    J'ai vérifié et en fait non.
    Le service1.domaine_interne.com ne reçoit pas la requete.
    En fait c'est à cause du dernier "/".
    Si j'en ajoute un à la fin, comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.domaine_externe.com/service1/annexe2/
    Tout fonctionne correctement.
    Sinon, le serveur service1 ne reçoit pas la requete et le "access log" du serveur proxy affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IP -  - DATE "GET /annexe2/ HTTP/1.1" 404 207 ...
    le "service1" a disparu entre temps.

    J'ai remarqué avoir fait une erreur précédemment en rapportant l'erreur. En tapant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.domaine_externe.com/service1/annexe2
    je ne suis pas redirigé vers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.domaine_externe.com/annexe2
    mais vers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.domaine_externe.com/annexe2/
    à noter le dernier "/" au cas où ça aurait de l'importance.

  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
    Par défaut
    Regarde le code HTML des pages reçues par ton navigateur. Il se peut que ce soit <a href="/annexe2"> (ou /annexe2/, peu importe). Dans ce cas, c'est difficile de lutter car il faut soit modifier l'application de service1 pour qu'il modifie le code HTML et ne plus renvoyer de href="/..., soit utiliser un module du style mod_proxy_html pour réécrire en live le code HTML renvoyé au navigateur et renvoyer le bon code HTML.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/02/2007, 19h09
  2. [AJAX] probleme appelle page XML sur autre serveur
    Par ldcarpathes dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/08/2006, 18h35
  3. visualiser les pages asp sur le serveur ASP
    Par toussa dans le forum IIS
    Réponses: 1
    Dernier message: 27/05/2006, 20h32
  4. Comment envoyer mes pages HTML pour le serveur?
    Par Paulinho dans le forum Autres langages pour le Web
    Réponses: 6
    Dernier message: 04/04/2006, 14h03
  5. [FLASH MX2004] loadVar vers une page d'un autre serveur
    Par j0hnmerrick dans le forum Flash
    Réponses: 3
    Dernier message: 22/03/2005, 12h49

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