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 :

Configuration de reverse proxy


Sujet :

Apache

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2010
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Configuration de reverse proxy
    Bonjour,

    Etant débutant dans les proxys apache, je cherche de l'aide pour configurer mon serveur :

    J'ai besoin de :

    http://mondomaine.ch, redirigé sur http://monserveur.ch:10080/PageMaster

    et

    http://mondomaine.ch/PageMaster, redirigé sur http://monserveur.ch:10080/PageMaster

    et

    http://mondomaine.ch/xxx, redirigé sur http://monserveur.ch:10080/xxx
    où xxx vaut pour tout le reste

    Il faut que les 3 conditions fonctionnent
    J'ai essayé avec ProxyPass, ProxyPassMatch, RewriteRule, RewriteCond. J'arrive pas à trouver la syntaxe qui marche.

    Merci de votre aide
    Olivier

  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
    Citation Envoyé par petitpouce Voir le message
    J'ai essayé avec ProxyPass, ProxyPassMatch, RewriteRule, RewriteCond. J'arrive pas à trouver la syntaxe qui marche.
    Tu peux quand même nous montrer ce à quoi tu as abouti ?

    Pour la partie "http://mondomaine.ch, redirigé sur http://monserveur.ch:10080/PageMaster", est-ce qu'une redirection du navigateur de http://mondomaine.ch/ vers http://mondomaine.ch/PageMaster irait ? On peut imaginer une règle qui dit : "quand on demande / on redirige le navigateur vers /PageMaster" et tout le reste serait pris en charge par le reverse proxy.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2010
    Messages : 6
    Points : 1
    Points
    1
    Par défaut rewriterule
    Bonjour Mac,

    Merci d'avoir pris le temps de répondre.

    Prenons les problèmes dans l'ordre. J'espère être assez clair, parce que c'est jamais facile d'expliquer un problème.

    J'ai écris une seule ligne de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^/(.*)$ http://monserveur.ch:10080/$1 [L,P]
    1.
    Quand je tape http://mondomaine.ch/PageMaster/, il me redirige correctement
    Si je regarde le log, je suis redirigé vers /Troy/getFile. Bizzare, mais j'obtiens le bon résultat. Je pense qu'il y a double redirection, mais ça fonctionne

    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
    172.24.20.5 - - [14/Oct/2010:09:44:02 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7adf578/initial] (2) init rewrite engine with requested uri /PageMaster/
    172.24.20.5 - - [14/Oct/2010:09:44:02 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7ae95a0/initial] (3) applying pattern '^/(.*)$' to uri '/PageMaster/AC_OETags.js'
    172.24.20.5 - - [14/Oct/2010:09:44:02 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7ae1580/initial] (2) forcing proxy-throughput with http://172.24.20.51:10080/PageM
    aster/portal.swf
    172.24.20.5 - - [14/Oct/2010:09:44:02 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7ae1580/initial] (1) go-ahead with proxy request proxy:http://172.24.20.51:10080/P
    ageMaster/portal.swf [OK]
    172.24.20.5 - - [14/Oct/2010:09:44:02 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7ae5590/initial] (2) init rewrite engine with requested uri /PageMaster/blank.html
    172.24.20.5 - - [14/Oct/2010:09:44:02 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7ae5590/initial] (3) applying pattern '^/(.*)$' to uri '/PageMaster/blank.html'
    172.24.20.5 - - [14/Oct/2010:09:44:02 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7ae5590/initial] (2) rewrite '/PageMaster/blank.html' -> 'http://172.24.20.51:1008
    0/PageMaster/blank.html'
    172.24.20.5 - - [14/Oct/2010:09:44:02 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7ae5590/initial] (2) forcing proxy-throughput with http://172.24.20.51:10080/PageM
    aster/blank.html
    172.24.20.5 - - [14/Oct/2010:09:44:02 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7ae5590/initial] (1) go-ahead with proxy request proxy:http://172.24.20.51:10080/P
    ageMaster/blank.html [OK]
    172.24.20.5 - - [14/Oct/2010:09:44:03 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7ae95a0/initial] (2) init rewrite engine with requested uri /PageMaster/PortalReso
    urceModule_fr.swf
    172.24.20.5 - - [14/Oct/2010:09:44:03 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7ae95a0/initial] (3) applying pattern '^/(.*)$' to uri '/PageMaster/PortalResource
    Module_fr.swf'
    172.24.20.5 - - [14/Oct/2010:09:44:03 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7ae95a0/initial] (2) rewrite '/PageMaster/PortalResourceModule_fr.swf' -> 'http://
    172.24.20.51:10080/PageMaster/PortalResourceModule_fr.swf'
    172.24.20.5 - - [14/Oct/2010:09:44:03 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7ae95a0/initial] (2) forcing proxy-throughput with http://172.24.20.51:10080/PageM
    aster/PortalResourceModule_fr.swf
    172.24.20.5 - - [14/Oct/2010:09:44:03 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7ae95a0/initial] (1) go-ahead with proxy request proxy:http://172.24.20.51:10080/P
    ageMaster/PortalResourceModule_fr.swf [OK]
    172.24.20.5 - - [14/Oct/2010:09:44:03 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7aed5b0/initial] (2) init rewrite engine with requested uri /PageMaster/javascript
    /ColorTuneDisplay.js
    172.24.20.5 - - [14/Oct/2010:09:44:03 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7aed5b0/initial] (3) applying pattern '^/(.*)$' to uri '/PageMaster/javascript/Col
    orTuneDisplay.js'
    172.24.20.5 - - [14/Oct/2010:09:44:03 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7aed5b0/initial] (2) rewrite '/PageMaster/javascript/ColorTuneDisplay.js' -> 'http
    ://172.24.20.51:10080/PageMaster/javascript/ColorTuneDisplay.js'
    172.24.20.5 - - [14/Oct/2010:09:44:03 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7aed5b0/initial] (2) forcing proxy-throughput with http://172.24.20.51:10080/PageM
    aster/javascript/ColorTuneDisplay.js
    172.24.20.5 - - [14/Oct/2010:09:44:03 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7aed5b0/initial] (1) go-ahead with proxy request proxy:http://172.24.20.51:10080/P
    ageMaster/javascript/ColorTuneDisplay.js [OK]
    172.24.20.5 - - [14/Oct/2010:09:44:03 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7adf578/initial] (2) init rewrite engine with requested uri /Troy/getFile
    172.24.20.5 - - [14/Oct/2010:09:44:03 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7adf578/initial] (3) applying pattern '^/(.*)$' to uri '/Troy/getFile'
    172.24.20.5 - - [14/Oct/2010:09:44:03 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7adf578/initial] (2) rewrite '/Troy/getFile' -> 'http://172.24.20.51:10080/Troy/ge
    tFile'
    172.24.20.5 - - [14/Oct/2010:09:44:03 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7adf578/initial] (2) forcing proxy-throughput with http://172.24.20.51:10080/Troy/
    getFile
    172.24.20.5 - - [14/Oct/2010:09:44:03 +0200] [portal.st-paul.ch/sid#b793f6d0][rid#b7adf578/initial] (1) go-ahead with proxy request proxy:http://172.24.20.51:10080/T
    roy/getFile [OK]
    2.
    Maintenant, le même URL mais sans le "/" après PageMaster
    Quand je tape http://mondomaine.ch/PageMaster, il me redirige à la bonne place, mais ne trouve pas la page (le fameux /Troy/getFile). Comment faire pour qu'il ajoute un "/" et me redirige vers la bonne page ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    172.24.20.5 - - [14/Oct/2010:09:30:09 +0200] [portal.st-paul.ch/sid#b79e46d0][rid#b7b84580/initial] (2) init rewrite engine with requested uri /PageMaster
    172.24.20.5 - - [14/Oct/2010:09:30:09 +0200] [portal.st-paul.ch/sid#b79e46d0][rid#b7b84580/initial] (3) applying pattern '^/(.*)$' to uri '/PageMaster'
    172.24.20.5 - - [14/Oct/2010:09:30:09 +0200] [portal.st-paul.ch/sid#b79e46d0][rid#b7b84580/initial] (2) rewrite '/PageMaster' -> 'http://172.24.20.51:10080/PageMaste
    r'
    172.24.20.5 - - [14/Oct/2010:09:30:09 +0200] [portal.st-paul.ch/sid#b79e46d0][rid#b7b84580/initial] (2) forcing proxy-throughput with http://172.24.20.51:10080/PageM
    aster
    172.24.20.5 - - [14/Oct/2010:09:30:09 +0200] [portal.st-paul.ch/sid#b79e46d0][rid#b7b84580/initial] (1) go-ahead with proxy request proxy:http://172.24.20.51:10080/P
    ageMaster [OK]]
    3.
    Toujours dans la même idée que ci-dessus, quand je tape http://mondomaine.ch, je voudrais aussi qu'il me renvoie vers ce fameux /Troy/getFile, mais cette fois, il démarre une autre page qui me renvoie vers ...start.do. Est-il possible de réécrire l'URL avec /PageMaster/, pour qu'il me renvoie vers /Troy/getFile ?

    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
    172.24.20.5 - - [14/Oct/2010:09:36:21 +0200] [portal.st-paul.ch/sid#b785b6d0][rid#b79fb580/initial] (2) init rewrite engine with requested uri /
    172.24.20.5 - - [14/Oct/2010:09:36:21 +0200] [portal.st-paul.ch/sid#b785b6d0][rid#b79fb580/initial] (3) applying pattern '^/(.*)$' to uri '/'
    172.24.20.5 - - [14/Oct/2010:09:36:21 +0200] [portal.st-paul.ch/sid#b785b6d0][rid#b79fb580/initial] (2) rewrite '/' -> 'http://172.24.20.51:10080/'
    172.24.20.5 - - [14/Oct/2010:09:36:21 +0200] [portal.st-paul.ch/sid#b785b6d0][rid#b79fb580/initial] (2) forcing proxy-throughput with http://172.24.20.51:10080/
    172.24.20.5 - - [14/Oct/2010:09:36:21 +0200] [portal.st-paul.ch/sid#b785b6d0][rid#b79fb580/initial] (1) go-ahead with proxy request proxy:http://172.24.20.51:10080/
    [OK]
    172.24.20.5 - - [14/Oct/2010:09:36:21 +0200] [portal.st-paul.ch/sid#b785b6d0][rid#b7a01598/initial] (2) init rewrite engine with requested uri /scripts/3.0/applicati
    on.js
    172.24.20.5 - - [14/Oct/2010:09:36:21 +0200] [portal.st-paul.ch/sid#b785b6d0][rid#b7a01598/initial] (3) applying pattern '^/(.*)$' to uri '/scripts/3.0/application.j
    s'
    172.24.20.5 - - [14/Oct/2010:09:36:21 +0200] [portal.st-paul.ch/sid#b785b6d0][rid#b7a01598/initial] (2) rewrite '/scripts/3.0/application.js' -> 'http://172.24.20.51
    :10080/scripts/3.0/application.js'
    172.24.20.5 - - [14/Oct/2010:09:36:21 +0200] [portal.st-paul.ch/sid#b785b6d0][rid#b7a01598/initial] (2) forcing proxy-throughput with http://172.24.20.51:10080/scrip
    ts/3.0/application.js
    172.24.20.5 - - [14/Oct/2010:09:36:21 +0200] [portal.st-paul.ch/sid#b785b6d0][rid#b7a01598/initial] (1) go-ahead with proxy request proxy:http://172.24.20.51:10080/s
    cripts/3.0/application.js [OK]
    172.24.20.5 - - [14/Oct/2010:09:36:21 +0200] [portal.st-paul.ch/sid#b785b6d0][rid#b79fd588/initial] (2) init rewrite engine with requested uri /start.do

  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
    Utiliser mod_rewrite pour faire un reverse proxy aussi simple n'est pas indiqué. Je te propose de remplacer ta seule ligne RewriteRule par le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ProxyPass /PageMaster/ http://monserveur.ch:10080/PageMaster/
    ProxyPassReverse /PageMaster/ http://monserveur.ch:10080/PageMaster/
     
    RewriteRule ^/(PageMaster)?$ /PageMaster/ [R,L]
    Ca devrait faire tout ce que tu veux.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2010
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Mac,

    Oui, en effet. Mélanger le ProxyPass et le RewriteRule fonctionne pour atteindre mes pages.

    Mais, j'ai besoin encore d'atteindre d'autres pages dynamiquement, du genre

    /PageMaster/ColorTuneDisplay.js
    /PageMaster/PortalResourceModule_fr.swf
    /scripts/3.0/application.js

    Comment faire pour écrire 2 RewriteRule ? Faut-il mettre un RewriteCond ?

    Merci
    Olivier

  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

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2010
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Mac,

    Oui, je pense que c'est ça qui joue pas...

    http://mondomaine.ch/scripts/3.0/application.js

    devrait donner

    http://monserveur.ch:10080/scripts/3.0/application.js

    ou peut-être

    http://monserveur.ch:10080/PageMaste...application.js

    pas certain où se trouve le fichier application.js

    Si t'as la solution, ...

    Merci
    Olivier

  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 petitpouce Voir le message
    et

    http://mondomaine.ch/xxx, redirigé sur http://monserveur.ch:10080/xxx
    où xxx vaut pour tout le reste
    C'est ce que tu as demandé et ce que j'ai proposé. /scripts/... fait partie de tout le reste car pas "/" ou "/PageMaster...". Il semblerait donc qu'il y ait un "bug" dans le besoin, non ?

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2010
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Mac,

    Oui, effectivement, ton code fonctionne pour ma requête.
    Mais, je découvre l'application ...au fur et à mesure. Un vrai sac de noeud

    Donc, si je rajoute la demande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://mondomaine.ch/xxx --> http://monserveur.ch:10080/PageMaster/xxx
    Qu'est-ce que je dois modifier/ajouter ?

    Dans mon code, j'avais mis un "$1", pour le rendre dynamique.
    Dans ton code, y'en a pas, et ça marche quand même. Pourquoi ?

    Olivier

  10. #10
    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
    Ta règle devient très générique, elle couvre aussi le cas http://mondomaine.ch/PageMaster/... Tu es sûr de vouloir une telle règle ? Faut-il rediriger le navigateur si /PageMaster ne figure pas dans l'URL ?

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2010
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Mac,

    Je voudrais juste que ça fonctionne et là, les pages ne s'affichent pas correctement. Je voudrais juste que tu m'expliques ta solution que je ne comprends pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ProxyPass /PageMaster/ http://monserveur.ch:10080/PageMaster/
    ProxyPassReverse /PageMaster/ http://monserveur.ch:10080/PageMaster/
     
    RewriteRule ^/(PageMaster)?$ /PageMaster/ [R,L]
    Si je suis bien....

    Si mon URL fini par /PageMaster/, je suis redirigé vers http://monserveur.ch:10080/PageMaster/

    Si mon URL fini par / ou /PageMaster, je suis redirigé vers http://monserveur.ch:10080/PageMaster/

    Mais le reste...tout ce qui est dynamique. La ligne ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://mondomaine.ch/xxx --> http://monserveur.ch:10080/xxx
    Comment fait Apache pour la rendre dynamique. Je ne vois nulle part un "$1" ou quelquechose qui fait que xxx soit dynamique.

    Je ne vois, non plus, nulle part, un [P], pour dire que le rewrite doit être passé au Proxy. Pourquoi ?

    Merci pour ton aide
    Olivier

  12. #12
    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 petitpouce Voir le message
    Si mon URL fini par /PageMaster/, je suis redirigé vers http://monserveur.ch:10080/PageMaster/
    Non, c'est si elle commence par /PageMaster/ alors proxy vers http://monserveur.ch:10080/PageMaster/. mod_proxy va compléter automatiquement l'URL. Par exemple, si tu demandes /PageMaster/toto/titi, mod_proxy ira demander http://monserveur.ch:10080/PageMaster/toto/titi.

    Citation Envoyé par petitpouce Voir le message
    Si mon URL fini par / ou /PageMaster, je suis redirigé vers http://monserveur.ch:10080/PageMaster/
    Non, c'est si l'URL demandée est / ou /PageMaster sans rien d'autre derrière.

    Citation Envoyé par petitpouce Voir le message
    Mais le reste...tout ce qui est dynamique. La ligne ci-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://mondomaine.ch/xxx --> http://monserveur.ch:10080/xxx
    Comment fait Apache pour la rendre dynamique. Je ne vois nulle part un "$1" ou quelquechose qui fait que xxx soit dynamique.
    Ben pour le reste, Apache ne fait rien de particulier. Si tu demandes http://mondomaine.ch/foo/bar.php, Apache cherchera à traiter le fichier foo/bar.php du document root. En tout cas, quand on dit :
    Citation Envoyé par petitpouce
    http://mondomaine.ch/xxx, redirigé sur http://monserveur.ch:10080/xxx
    où xxx vaut pour tout le reste
    c'est ce que je comprends qu'il faut faire

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/05/2012, 23h20
  2. Réponses: 8
    Dernier message: 10/06/2010, 14h18
  3. Réponses: 6
    Dernier message: 14/04/2010, 17h43
  4. Réponses: 3
    Dernier message: 20/01/2009, 12h37
  5. Réponses: 7
    Dernier message: 11/12/2007, 04h16

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