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 :

[URL rewriting] Changement de port


Sujet :

Apache

  1. #1
    Candidat au Club
    Profil pro
    Account Manager
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Points : 4
    Points
    4
    Par défaut [ProxyPass] Changement de port
    Bonjour,

    Je ne sais pas s'il est possible de faire ce que je veux à l'aide du mod_rewrite, voici mon souci :

    Je n'ai pas accés au port 81 de mon réseau (seulement le 80), je voudrais faire une régle pour accéder à un serveur distant http://test.serveur.com:81/ en passant par le port 80.

    En gros ca serait une régle qui dirait tout ce qui arrive sur test.serveur.com (port 80) est transformé en test.serveur.com:81 et renvoyé sur le navigateur via le port 80 test.serveur.com .

    Je n'arrive pas a faire cette régle avec RewriteRule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    LoadModule rewrite_module modules/mod_rewrite.so
    Options FollowSymlinks
    RewriteEngine On
    RewriteLog "D:\apache2.2\logs\rewrite.log"
    RewriteLogLevel 3
     
    RewriteCond %{REMOTE_HOST}  ^test.*
    RewriteRule ^/$ http://test.serveur.com:81
    RewriteCond %{SERVER_PORT} ^81$
    ?



    Instance Apache port 80 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <VirtualHost *:80>
        ServerName serveur.com
        DocumentRoot E:/WWW/
        ErrorLog E:/WWW/logs/error_80.log
        CustomLog E:/WWW/logs/access_80.log common
    </VirtualHost>

    Instance Apache port 81 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <VirtualHost *:81>
        ServerName test.serveur.com
        DocumentRoot E:/WWW/test/
        ErrorLog E:/WWW/logs/error_81.log
        CustomLog E:/WWW/logs/access_81.log common
    </VirtualHost>


    Je ne sais pas si c'est trés clair...

    Merci de votre aide.

    Florian.

  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
    Oublie mod_rewrite sur un truc comme ça, c'est mod_proxy qu'il faut utiliser. Dans le VH du port 80, mets ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ProxyPass / http://test.serveur.com:81
    ProxyPassReverse / http://test.serveur.com:81

    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
    Candidat au Club
    Profil pro
    Account Manager
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Ah oui en effet ca marche plutot bien et c'est simple à mettre en place !

    Par contre depuis que j'ai rajouté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    <VirtualHost *:80>
        ServerName localhost
        DocumentRoot D:/apache2.2/htdocs
        ErrorLog D:/apache2.2/error_80.log
        CustomLog D:/apache2.2/access_80.log common
        ProxyPass / http://test.localhost:81/
        ProxyPassReverse / http://test.localhost:81/
    </VirtualHost>
    Je n'ai plus accès au serveur web sur le port 80, il est redirigé vers le port 81 que je passe par l'adresse serveur.com ou test.serveur.com

    J'ai essayé ceci mais sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <VirtualHost test.localhost:80>
        ServerName test.localhost
        ProxyPass http://test.localhost/ http://test.localhost:81/
        ProxyPassReverse http://test.localhost/ http://test.localhost:81/
    </VirtualHost>
    L'idée étant de se connecter sur le serveur web avec le port 80 quand je rentre l'adresse http://serveur.com et de se connecter sur le serveur web avec le port 81 quand je rentre l'adresse http://test.serveur.com

    Merci pour votre aide.

  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
    Effectivement, la configuration ratisse un peu large. Ce qu'il faut c'est que tu as entraperçu, c'est passer par des virtual hosts. Il t'en faut un par nom d'hôte : un pour serveur.com et un pour test.serveur.com.

    Pour la configuration des VH, il faut partir sur le modèle donné par localhost :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <VirtualHost *:80>
        ServerName localhost
        ...
    </VirtualHost>
    On reprend ça et on ne change que ce qui est nécessaire, pas la peine d'en rajouter. Dans cette structure, le seul truc qu'on voit qu'il faut changer c'est ServerName. Pas la peine de changer la balise <VirtualHost> : elle est générique, n'a aucun lien avec localhost donc on ne voit pas pourquoi il faudrait la changer, n'est-ce pas ? Donc, on a créer 2 VH sur ce modèle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <VirtualHost *:80>
        ServerName serveur.com
        ...
    </VirtualHost>
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <VirtualHost *:80>
        ServerName test.serveur.com
        ...
    </VirtualHost>
    et dans chaque, on ne met que les trucs qui concerne chaque site. Par exemple, pour test.serveur.com, on met la conf ProxyPass qui marche bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <VirtualHost *:80>
        ServerName test.serveur.com
        ProxyPass / http://test.serveur.com:81
        ProxyPassReverse / http://test.serveur.com:81
    </VirtualHost>
    et c'est tout.

    Tu peux garder le virtual host pour localhost mais revient sur la configuration initiale.

    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
    Candidat au Club
    Profil pro
    Account Manager
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Est-ce que le fait que mes deux instances d'apache soient sur le mm serveur pourrait être un probléme ?

    Quoi que je rentre (http://serveur.com ou http://test.serveur.com) j'arrive tjs sur le site sur le port 80


    fichier host :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    127.0.0.1       localhost
    127.0.0.1        serveur.com
    127.0.0.1       test.serveur.com

    fichier http.conf - instance 1 - port 80

    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
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
     
    <VirtualHost *:80>
        ServerName serveur.com
        DocumentRoot D:/apache2.2/htdocs
        ErrorLog D:/apache2.2/error_80.log
        CustomLog D:/apache2.2/access_80.log common
    </VirtualHost>
     
    <VirtualHost *:80>
        ServerName test.serveur.com
        ProxyPass / http://test.serveur.com:81
        ProxyPassReverse / http://test.serveur.com:81
    </VirtualHost>

    fichier http.conf - instance 2 - port 81

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <VirtualHost *:81>
        ServerName test.serveur.com
        DocumentRoot D:/apache2.2/htdocs1
        ErrorLog D:/apache2.2/logs/error_81.log
        CustomLog D:/apache2.2/logs/access_81.log common
    </VirtualHost>

    Merci _Mac_ pour ton aide

  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
    c'est juste qu'il manque dans ta conf. Ajoute cette ligne avant le premier VH de serveur.com.

    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
    Candidat au Club
    Profil pro
    Account Manager
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Yes !! ca marche (presque) !!

    J'ai un nouveau soucis, l'outil hébergé sur test.serveur.com est Plone, il s'agit d'un système de gestion de contenu Web libre que j'ai installé sur l'instance avec le port 81

    J'arrive bien sur le portail et quand je rentre mes identifiants il me redirige vers test.serveur.com:81, n'y-a-t'il pas une solution pour éviter cela (je suppose qu'il fait une redirection vers l'url de "base") ?

    J'ai entendu parler du mod_proxy_html ?

    J'ai voulu test autre chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <VirtualHost *:80>
        ServerName test.serveur.com
        ProxyPass / http://www.google.fr/
        ProxyPassReverse / http://www.google.fr/
    </VirtualHost>
    Est-ce normal que l'image de google n'apparaisse pas ?

    Merci encore pour ton aide _Mac_

  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
    Essaie d'ajouter ceci avant ProxyPass :
    Si ça ne change rien, il faut voir ce qu'il se passe du côté de Plone.

    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
    Candidat au Club
    Profil pro
    Account Manager
    Inscrit en
    Juillet 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Juillet 2010
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Merci bcp _Mac_ avec cette dernière ligne dans le fichier tout marche nickel chrome !!

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

Discussions similaires

  1. [URL rewriting] Changement de chemin du site
    Par Saachaa dans le forum Apache
    Réponses: 17
    Dernier message: 08/03/2013, 17h46
  2. Apache, Port Forwarding et URL Rewriting.
    Par housou2000 dans le forum Apache
    Réponses: 2
    Dernier message: 16/04/2012, 22h00
  3. Réponses: 0
    Dernier message: 20/03/2012, 23h23
  4. Changement d'URL par URL rewriting
    Par smartie dans le forum Apache
    Réponses: 4
    Dernier message: 21/09/2010, 11h22

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