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 apache 2.2 reverse proxy avec IIS 7.0 + webdev machines distantes


Sujet :

Apache

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Configuration apache 2.2 reverse proxy avec IIS 7.0 + webdev machines distantes
    Bonjour,

    Je suis en stage dans une entreprise et on me demande de réalisé un prototype simple d'application avec une architecture bien spécifique, mais la je sèche...

    Mon architecture est la suivante : apache 2.2 en reverse proxy sur une machine frontal (serveur_front) et sur une autre machine IIS 7.0 qui sert de serveur web pour le serveur d'application Webdev (serveur_back). Après cette architecture, ne peut peut être pas fonctionner...

    Ma configuration :

    Apache 2.2 sur serveur_front:

    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
    LoadModule proxy_module      modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    
    LoadFile	"modules/mod_proxy_html/zlib-1.1.4.win32/lib/zlib.dll"
    LoadFile	"modules/mod_proxy_html/iconv-1.9.1.win32/lib/iconv.dll"
    LoadFile	"modules/mod_proxy_html/libxml2-2.6.10.win32/lib/libxml2.dll"
    LoadModule proxy_html_module modules/mod_proxy_html/mod_proxy_html.so
    LoadModule xml2enc_module modules/mod_proxy_html/mod_xml2enc.so
    
    
    
    Include conf/proxy_html.conf
    
    Listen 8999
    
    <VirtualHost _default_:8999>
    
        ProxyRequests off
        
        ProxyPass /Proto2_webdev/ http://serveur_back:8999/Proto2_webdev/
            
        <Location /Proto2_webdev/ >
            ProxyPassReverse /
    	ProxyHTMLEnable On
    	ProxyHTMLURLMap http://serveur_back:8999/Proto2_webdev/ /Proto2_webdev/
    	ProxyHTMLURLMap / /Proto2_webdev/
        </Location>
    
        <Proxy>
            Order Allow,Deny
            Allow from all
        </Proxy>
    
    </VirtualHost>
    IIS 7.0 sur serveur_back :

    Application marche en local sur le port d'écoute 8999.

    Problème :
    Ma page d’accueil de l'application s'affiche pas convenablement, il manque les informations de la BD, les images, les scripts QUAND LES LIGNES EN ROUGES SONT EN COMMENTAIRES... Cela est dû au chemin d'accès qui n'est pas correct d'après les logs, il recherche ces fichiers sur la machine en front.

    Pour palier à ce problème, après quelques recherches, je me suis orienté vers l'utilisation du mod_proxy_html qui a pour but de modifier le chemin d'accès absolue dans le code de l'application (LIGNE EN ROUGE). mais cette opération ne marche pas, quand je veux accéder à mon site depuis la machine front, il me demande une authentification (WTF) alors que précédemment je n'en avait pas besoin, mais le résultat reste inchanger...

    Dans les logs d'apache, je trouve un chemin d'accès qui correspond mieux à ce qui me semble correct(access log), mais dans les logs d'erreurs (error_log) il me sort ces lignes :
    Charset us-ascii not supported. Consider aliasing it?
    No usable charset information; using configuration default
    Charset us-ascii not supported. Consider aliasing it?, referer: http://serveur_front:8999/Proto2_webdev/
    No usable charset information; using configuration default, referer: http://serveur_front:8999/Proto2_webdev/
    Si quelqu'un c'est déjà penché sur le sujet ou a des éléments de réponse, il sont très très bien venu.
    Merci d'avance

  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
    Je ne connais pas vraiment mod_proxy_html mais de ce que je sais, pour l'utiliser il faut que l'encodage des pages HTML soit UTF-8. Je pense donc qu'IIS renvoie une information qui laisse penser à Apache que les pages ne sont pas en UTF-8. Donc regarde les en-têtes HTTP renvoyés par IIS et le début des pages HTML pour voir si l'encodage est forcé en US-ASCII. Il y a peut-être un paramètre côté IIS ou windev à positionner sur UTF-8.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci de votre réponse Mac.

    J'ai refait des recherches sur le sujet et il s'avère qu'il n'est pas possible de réalisé cette configuration car le module n'est pas adapté à la situation...

    Une simple redirection vers le serveur_back suffirais, mais quand je fais cette redirection soit à l'aide du mod alias :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Listen 8999
     
    <VirtualHost _default_:8999>
     
    Redirect /Proto2_webdev/ http://serveur_back:8999/Proto2_webdev/ 
     
    </VirtualHost>
    sois du mod rewrite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Listen 8999
     
    <VirtualHost _default_:8999>
     
    RewriteEngine On
    RewriteRule  /Proto2_webdev/ http://serveur_back:8999/Proto2_webdev/
     
    </VirtualHost>
    La redirection marche mais l'url dans le navigateur change également, on passe de ça :
    à ça :

  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
    Forcément : si tu lis la doc tu verras que les 2 configurations font une redirection du navigateur. Ce n'est pas du tout de reverse proxy. Pour faire du reverse proxy ben faut mod_...proxy (comme quoi les noms sont bien choisis ). La configuration de premier niveau est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ProxyPass /Proto2_webdev/ http://serveur_back:8999/Proto2_webdev/
    ProxyPassReverse /Proto2_webdev/ http://serveur_back:8999/Proto2_webdev/
    Je n'avais pas bien fait attention à ton premier message mais ta configuration mod_proxy_html ne sert à rien sauf si l'application IIS écrit des URL absolues (http://...) dans le code HTML qu'elle renvoie. Si c'est le cas, il faut utiliser mod_proxy_html mais on retombe sur le problème du début. Sinon, ne reste plus qu'à voir côté application IIS si elle peut écrire des URL relatives ou absolues mais en tenant compte du host name renvoyé par le proxy. A ce titre, j'ajouterais la ligne suivante dans la configuration :

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    En effet, le module proxy html ne sert pas ici, j'ai regardé une de vos discutions précédente : redirection invisible et transparente, ce qui répond bien a mon attente, j'ai donc réalisé des modifs en suivant cette discutions et ça marche.

    Pour les curieux et je sais que ça peux tjr servir je vous met ma config apache :
    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
     
    #Chargement des modules utiles pour un reverse proxy
    LoadModule proxy_module      modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
     
    # Modules de réécriture des appels de l’application
    LoadModule rewrite_module modules/mod_rewrite.so
     
    # Ouverture du port 8999
    Listen 8999
     
    <VirtualHost _default_:8999>
     
        # Mise à off de proxy requests
        ProxyRequests off
        # Création du lien entre l’adresse http://dciweb-dev:8999/proto2/ et celui de vmsql2k8 
        ProxyPass /Proto2_webdev/ http://vmsql2k8:8999/Proto2_webdev/
        ProxyPassReverse /Proto2_webdev/ http://vmsql2k8:8999/Proto2_webdev/
        # Utilisation du module de réécriture des appels
        <IfModule rewrite_module>
            RewriteEngine On
            RewriteOptions inherit
            #Redirection pour les ressources à mettre à jour suivant les types de ressources
            RewriteRule ^/(.*-resources/.*) http://vmsql2k8:8999/$1 [L,R=301]
            RewriteRule ^/(.*\.css)$ http://vmsql2k8:8999/$1 [L,R=301]
            RewriteRule ^/(.*\.js)$ http://vmsql2k8:8999/$1 [L,R=301]
            RewriteRule ^/(.*\.gif)$ http://vmsql2k8:8999/$1 [L,R=301]
        </IfModule>
     
    </VirtualHost>
    Merci pour ton aide Mac.

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

Discussions similaires

  1. Exécuter un script local avec environnement local sur une machine distante
    Par leon1983 dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 23/01/2013, 16h33
  2. Reverse proxy avec Apache 2.2
    Par RudyWI dans le forum Apache
    Réponses: 1
    Dernier message: 28/09/2011, 15h41
  3. [Continuum] Lancer un build mais avec un résultat sur une machine distante
    Par bassemeco dans le forum Intégration Continue
    Réponses: 10
    Dernier message: 02/07/2008, 11h19
  4. Reverse Proxy Apache et IIS
    Par pseudomh dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 26/03/2007, 16h09
  5. Problème Apache en Reverse Proxy + IIS
    Par CaroleM dans le forum Serveurs (Apache, IIS,...)
    Réponses: 3
    Dernier message: 12/03/2007, 10h07

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