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 :

Redirection vers un second serveur Apache


Sujet :

Apache

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut Redirection vers un second serveur Apache
    Bonjour,

    je souhaite savoir s'il est possible de faire la chose suivante :

    deux serveurs apache sur une même machine (une adresse IP publique)
    le serveur APACHE_A héberge des applications sur le port 80
    ..../applicationA1
    ..../applicationA2
    ..../applicationA3

    le serveur APACHE_B héherge des applications sur le port 8080
    ....:8080/applicationB1
    ....:8080/applicationB2
    ....:8080/applicationB3

    J'ai besoin de donner accès à l'application B3 en utilisant le port 80, c-a-d en faisant .../applicationB3

    Je cherche donc des informations pour réaliser une redirection du serveur Apache_A vers le serveur Apache_B pour l'url /applicationB3/

    Merci d'avance pour vos précieuses informations ...

  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
    Bonjour,

    C'est mod_proxy qu'il faut utiliser. Dans la conf d'Apache du serveur A il faut activer mod_proxy si nécessaire puis mettre la conf suivante (en bas de fichier httpd.conf ou dans le virtual host) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ProxyPass /applicationB3 http://localhost:8080/applicationB3
    ProxyPassReverse /applicationB3 http://localhost:8080/applicationB3

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut mes premiers tests sont parfaits ...
    J'ai appliqué votre réponse et cela fonctionne à merveille. Vraiment merci. Je vais poursuivre mes tests et vous tenir au courant.

    Cordialement

    Philippe

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut et avec SSL ...
    Je confirme que cela fonctionne parfaitement.

    Mais en fait, pouvons-nous ajouter une liaison https sur le port 443 ?

    La configuration devient la suivante

    - deux serveurs apache sur une même machine (une adresse IP publique)

    - le serveur APACHE_A héberge des applications sur le port 80(http)/443(https) (avec certificat installé)
    ..../applicationA1
    ..../applicationA2
    ..../applicationA3

    - le serveur APACHE_B héherge des applications sur le port 8080(http)/8043(https) (sans certificat installé)
    ....:8080/applicationB1
    ....:8080/applicationB2
    ....:8080/applicationB3

    Comment faire pour autoriser un accès https à l'application B3 en utilisant le port 443 du serveur APACHE_A, c-a-d en faisant ...:443/applicationB3 ?

    Le but est de donner un accès à sécurité https vers l'application B3. Cela serait la configuration idéale.

    Merci d'avance.

    Philippe


    Je cherche donc des informations pour réaliser une redirection du serveur Apache_A vers le serveur Apache_B pour l'url /applicationB3/

    Merci d'avance pour vos précieuses informations ...

  5. #5
    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
    La première chose à faire, c'est configurer SSL sur le serveur A et déclarer les virtual hosts. Ensuite, je ne sais pas trop J'imagine qu'il suffit de déplacer la configuration vue plus haut dans le virtual host du port 443. Dans ce cas on devrait avoir la chaîne suivante : navigateur == https ==> serveur A:443 == http ==> serveur B:8080

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut configuration virtual host ...
    Pouvez-vous svp me préciser la configuration possible au niveau des virtuals hosts ?

    Je suis néophyte en configuration Apache. Et je dois avouer que je ne comprends pas trop ce principe de virtual host.

    Deux remarques :

    1/ J'ai lu la doc suivante http://httpd.apache.org/docs/2.2/fr/...ame-based.html.

    Il me semble qu'il faut utiliser le principe de virtual host par nom (ayant une seule IP).

    J'ai donc remarqué ceci dans la doc :

    "L'hébergement virtuel par nom ne peut pas être utilisé avec des serveurs sécurisés SSL à cause de la nature même du protocole SSL."

    Qu'en pensez-vous ?

    2/ Le serveur APACHE_A ( le premier qui écoute le port 80 et le port 443 - SSL installé) est en fait un serveur ORACLE HTTP_Server 10g/10.1.2.02

    Merci d'avance

  7. #7
    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
    Le truc avec SSL c'est qu'on ne peut pas avoir plusieurs VH SSL en même temps, mais on peut faire fonctionner HTTP et HTTPS sur le même serveur puisqu'on va utiliser 2 ports différents (voir http://httpd.apache.org/docs/2.2/ssl...aq.html#vhosts qui ne signifie pas http://httpd.apache.org/docs/2.2/ssl....html#parallel).

    Donc, pour la conf virtual host, il faut d'abord déclarer les 2 ports d'écoute :
    Ensuite, il faut configurer le SSL. Je vous laisse faire, je ne sais pas comment on fait Pour tester, pour le moment vous n'avez pas besoin de virtual host : vous essayer d'accéder au site du serveur A par https://...

    Ensuite, quand le SSL fonctionne, vous configurez les virtual hosts et vous mettez vos ProxyPass et ProxyPassReverse dans le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    NameVirtualHost *:80
    NameVirtualHost *:443
     
    <VirtualHost *:80>
        ServerName www.votreserveur.com
        Port 80
    </VirtualHost>
     
    <VirtualHost *:443>
        ServerName www.votreserveur.com
        Port 443
        ProxyPass ...
        ProxyPassReverse ...
    </VirtualHost>
    Notez bien que je n'ai jamais fait ce genre de configuration donc ce que je dis peut très bien ne pas marcher du tout

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut Mes tests ...
    Voilà mes tests ...

    CAS 1/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    NameVirtualHost *:80
    NameVirtualHost *:443
     
    <VirtualHost *:80>
        ServerName www.votreserveur.com
        Port 80
    </VirtualHost>
     
    <VirtualHost *:443>
        ServerName www.votreserveur.com
        Port 443
        ProxyPass ...
        ProxyPassReverse ...
    </VirtualHost>
    avec les bonnes valeurs pour www.votreserveur.com

    Cela ne fonctionne pas, dans les deux cas http://.../applicationB3 et https://.../applicationB3.

    CAS 2/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #    ProxyPass ...
    #    ProxyPassReverse ...
    NameVirtualHost *:80
     
    <VirtualHost *:80>
        ServerName www.votreserveur.com
        Port 80
        ProxyPass ...
        ProxyPassReverse ...
    </VirtualHost>
    avec les bonnes valeurs pour www.votreserveur.com

    Cela ne fonctionne pas, savez-vous pourquoi ?

    J'ai l"impression que la déclaration de <VirtualHost *:80> n'est pas correcte.

  9. #9
    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
    Pour le second cas, ce n'est pas normal. Quand vous dites "Cela ne fonctionne pas", ça veut dire quoi exactement ? Plus rien ne fonctionne (erreur 500, erreur 404 ?), Apache ne veut pas démarrer ? Autre chose ?

    Vous avez raison dans le sens où il faut y aller progressivement, donc dans un premier temps sans Listen 443, sans configuration SSL (donc commenter toutes les directives liées à SSL) et donc uniquement avec le virtual host du port 80 comme vous le donnez pour le cas 2.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut des précisions
    1/
    Pardon, "ne fonctionne pas" signifie que la page ou l'application demandée n'est pas trouvée .

    J'ai le résultat suivant dans le browser ...

    -
    Not Found
    The requested URL /applicationB3 was not found on this server.
    -

    Je pense donc que le serveur APACHE_A (80) qui reçoit la requête, ne sait pas qu'il faut faire une redirection. Il ne le sait plus, vu le changement de configuration avec <VirtualHost *:80>.

    Avez-vous donc une idée sur le pourquoi ?

    2/
    Par défaut, le serveur APACHE_A est configuré pour écouter sur le port 443 et permettre du SSL. C'est un serveur Oracle HTTP_SERVER pré-configuré avec un certificat installé.

    Le fichier httpd.conf ne fait pas référence à du SSL.

    Par contre, il y a un fichier ssl.conf.

    Philippe

  11. #11
    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
    Citation Envoyé par beheretxea Voir le message
    Je pense donc que le serveur APACHE_A (80) qui reçoit la requête, ne sait pas qu'il faut faire une redirection. Il ne le sait plus, vu le changement de configuration avec <VirtualHost *:80>.

    Avez-vous donc une idée sur le pourquoi ?
    C'est tout à fait logique : les ProxyPass ont été déplacés dans la configuration du virtual host du port 443, donc forcément, quand on accède par le port 80, qui correspond à un autre virtual host, ces directives ne sont pas prises en compte. J'avais compris qu'il fallait désormais accéder à l'appli B3 par SSL, donc le port 443, c'est pour cela que j'ai fait déplacer les directives de Proxy dans le VH 443. Maintenant, s'il faut qu'on y accède en HTTP (port 80) et HTTPS (port 443), vous pouvez copier les lignes dans les 2 VH ou les mettre en dehors des <VirtualHost>.

    Citation Envoyé par beheretxea Voir le message
    2/
    Par défaut, le serveur APACHE_A est configuré pour écouter sur le port 443 et permettre du SSL. C'est un serveur Oracle HTTP_SERVER pré-configuré avec un certificat installé.

    Le fichier httpd.conf ne fait pas référence à du SSL.

    Par contre, il y a un fichier ssl.conf.
    Oui, c'est le fichier ssl.conf qui contient la configuration SSL. Il faut vérifier que ce fichier est bien inclu dans httpd.conf. ATTENTION : ce n'est pas ssl.conf qu'il faut faire la configuration des virtual hosts mais tout à la fin du fichier httpd.conf (après le include .../ssl.conf).

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut voilà c'est fait
    Heureux de vous annoncer que je suis arrivé à mon objectif grâce à vos conseils.

    En fait la configuration du serveur "physique" (Redhat) est la suivante. Ce serveur héberge le produit d'Oracle, Oracle Portal, lui-même contenant Oracle Application Server.

    Oracle Application Server est composé (au minimum) de deux instances, une instance nommée (chez Oracle) Infrastructure ( ou infra) et une instance nommée (chez Oracle) Midtier (ou midtier).

    Cas plus complexe (surement possible, en fonction des entreprises) une instance infra + n instances midtier.

    Chaque instance héberge (notamment) un serveur web Apache (adapté par Oracle) et nommé (chez Oracle) Oracle HTTP Server.

    Remarque : le serveur web Apache du midtier est le serveur nommé APACHE_A dans mon cas.

    Et chaque serveur web écoute évidemment des ports particuliers.

    Le serveur infra est un serveur qui mutualise des services de base comme le SSL (le fameux 443). Dans le httpd.conf : j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    <VirtualHost *:443>
    ProxyPass ...
    ProxyPassReverse ...
    </VirtualHost>
    Le serveur midtier est un serveur avec les services applicatifs (port 80)
    Dans le httpd.conf : j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    ProxyPass ...
    ProxyPassReverse ...

    Conclusion : je peux me servir de ces deux serveurs Apache pour faire de la redirection vers APACHE_B et permettre l'utilisation des ports standards 80 et 443 pour les applications web déployées (quel que soit le serveur APACHE).

    Merci encore.

    Philippe

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

Discussions similaires

  1. redirection vers une page JSF après 5 secondes
    Par tunbader dans le forum JSF
    Réponses: 0
    Dernier message: 29/06/2009, 10h46
  2. lien en php vers le serveur apache
    Par brice14000 dans le forum Apache
    Réponses: 12
    Dernier message: 17/11/2008, 16h27
  3. HTTP REFERER ou Redirection par serveur apache
    Par serna dans le forum Langage
    Réponses: 4
    Dernier message: 24/06/2007, 23h18
  4. Redirection entre deux serveur Apache
    Par BernardT dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 22/02/2007, 14h59
  5. Tomcat : redirection vers les pages d'erreur Apache
    Par keopsk dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 11/01/2007, 01h57

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