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 intempestive entre hôtes virtuels


Sujet :

Apache

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 20
    Points
    20
    Par défaut Redirection intempestive entre hôtes virtuels
    Bonjour,
    Je viens de configurer mon serveur apache avec 3 domaines.
    pour chacun des domaines j'ai un fichier de configuration suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <VirtualHost *:80>
            ServerAdmin postmaster@domain1.net
            ServerName www.domain1.net
            ServerAlias *.domain1.net
            DocumentRoot /var/www/domain1.net/www
            VirtualDocumentRoot /var/www/domain1.net/%1
            <Directory /var/www/domain1.net/>
                    Options -Indexes FollowSymLinks MultiViews
                    AllowOverride All
            </Directory>
            ServerSignature Off
    </VirtualHost>
    Et pour chacun des domaine dans les zone dns d'ovh je fait un champ wildcard pour le CNAME *.domain1.net

    Mais j'ai un comportement étrange d'apache.
    Quand je vais sur www.domain3.com apache me redirige tout seul sur www.domain2.com. Quand je vais sur domain3.com il essaye d'aller sur /var/www/domain2.com/domain3
    Et quand je vais sur domain1.com ca fonctionne mais quand je vais sur www.domain1.com il essaye d'aler sur /var/www/domain2.net/domain1.


    Avec vous une idée d'ou ça vient ?

  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
    Est-ce qu'il y a la ligne suivante dans ta configuration Apache (tout dépend de la distribution Linux mais si tu as un fichier /etc/apache2/ports.conf, c'est dedans qu'il faut le mettre) ?
    Si elle n'y est pas, il faut l'ajouter.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Yep c'est deja dans mon /etc/apache2/ports.conf

    Une autre idee ?

  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
    Sais pas trop

    Tu peux nous donner le contenu de ports.conf et des 3 fichiers de VH en n'anonymisant que l'élément du milieu dans les noms de sites, i.e. conserver le www s'il est présent et garder l'extension .com ou .net (par exemple : www.tonvraisite1.com => www.domaine1.com) ?

    Merci

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Ports.conf
    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
    # If you just change the port or add more ports here, you will likely also
    # have to change the VirtualHost statement in
    # /etc/apache2/sites-enabled/000-default
    # This is also true if you have upgraded from before 2.2.9-3 (i.e. from
    # Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
    # README.Debian.gz
     
    NameVirtualHost *:80
    Listen 80
     
    <IfModule mod_ssl.c>
        # If you add NameVirtualHost *:443 here, you will also have to change
        # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
        # to <VirtualHost *:443>
        # Server Name Indication for SSL named virtual hosts is currently not
        # supported by MSIE on Windows XP.
        Listen 443
    </IfModule>
     
    <IfModule mod_gnutls.c>
        Listen 443
    </IfModule>
    httpd.conf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DirectoryIndex index.html index.htm index.xhtml index.php
    UserDir www
    domain1.com
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <VirtualHost *:80>
            ServerAdmin postmaster@domain1.com
            ServerName www.domain1.com
            ServerAlias *.domain1.com
            DocumentRoot /var/www/domain1.com/www
            VirtualDocumentRoot /var/www/domain1.com/%1
            <Directory /var/www/domain1.com/>
                    Options -Indexes FollowSymLinks MultiViews
                    AllowOverride All
            </Directory>
            ServerSignature Off
    </VirtualHost>
    Dom-ain2.com (y a un tiret dans le nom de domaine)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <VirtualHost *:80>
            ServerAdmin postmaster@dom-ain2.com
            ServerName www.dom-ain2.com
            ServerAlias *.dom-ain2.com
            DocumentRoot /var/www/dom-ain2.com/www
            VirtualDocumentRoot /var/www/dom-ain2.com/%1
            <Directory /var/www/dom-ain2.com/>
                    Options -Indexes FollowSymLinks MultiViews
                    AllowOverride All
            </Directory>
            ServerSignature Off
    </VirtualHost>
    domain3.com
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <VirtualHost *:80>
            ServerAdmin postmaster@domain1.com
            ServerName www.domain3.net
            ServerAlias *.domain3.net
            DocumentRoot /var/www/domain3.net/www
            VirtualDocumentRoot /var/www/domain3.net/%1
            <Directory /var/www/domain3.net/>
                    Options -Indexes FollowSymLinks MultiViews
                    AllowOverride All
            </Directory>
            ServerSignature Off
    </VirtualHost>
    Voila les fichiers de conf dans /etc/apache2/sites-enabled/

  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
    Très étrange. Tu es sûr que les redirections viennent d'Apache ? Tu vois les redirections dans access_log ?

    Quand as-tu fait la modification du DNS ? As-tu purgé le cache de ton navigateur avant de tester ?

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    En fait c'est pas vraiment des redirecion. C'est juste que ce c*n d'apache ne va pas taper dans les bons dossier.

    Pour www.domain3.net il v taper dans /var/www/dom-ain2.com/www
    voila l'error:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Mon May 16 20:26:29 2011] [error] [client 71.0.0.00] File does not exist: /var/www/dom-ain2.com/domain3, referer: http://www.domain3.net/
    Alors qu'il devrait taper dans /var/www/domain3.net/domain3

    Le meme bug pour domain1

  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
    Oui, t'as raison, j'ai parlé trop vite des redirections, c'était évident.

    Là, honnêtement, je ne comprends pas bien où est le problème. Si ça ne te gêne pas, tu peux m'envoyer par MP tes 3 fichiers de config de VH, s'il te plaît, et les vraies URL avec lesquelles tu testes ?

    Autres questions : est-ce que ton site est derrière un reverse proxy ? Ca pourrait être la cause du problème si celui-ci ne gère pas bien l'en-tête Host. C'est même d'ailleurs la seule explication que je vois pour le moment. Du coup, peux-tu ajouter le token suivant dans le LogFormat d'Apache : ça tracera la valeur de l'en-tête Host et on pourra confirmer ou infirmer l'hypothèse :

  9. #9
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Voila les log d'erreur d'apache avec le nouveau token:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    www.domain3.net:80 71.138.131.165 - - [17/May/2011:15:30:45 +0000] "GET / HTTP/1.1" 200 1587 "-" "Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1" --- "www.domain3.net"
    www.do-main2.com:80 71.138.131.165 - - [17/May/2011:15:30:45 +0000] "GET /global-forms.css HTTP/1.1" 404 452 "http://domain3.net/template.css" "Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1" --- "domain3.net"
    www.do-main2.com:80 71.138.131.165 - - [17/May/2011:15:30:45 +0000] "GET /images/bg.png HTTP/1.1" 404 448 "http://domain3.net/template.css" "Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1" --- "domain3.net"
    www.domain1.com:80 71.138.131.165 - - [17/May/2011:15:32:01 +0000] "GET / HTTP/1.1" 302 324 "-" "Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1" --- "www.domain1.com"
    www.do-main2.com:80 71.138.131.165 - - [17/May/2011:15:32:10 +0000] "GET / HTTP/1.1" 302 324 "-" "Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1" --- "domain1.com"
    Bah ca fonctionne a coup de liens symbolique mais ca me fait vraiment chier c'est pas bien ordonne dans mes dossier et tout.

    Je te send les fvraiment fichier de conf des sites et les url de test en PV

  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
    Rien d'anormal dans les fichiers de config.

    En revanche, si on excepte la 5ème ligne de la trace que tu donnes, tout me semble fonctionner correctement
    • La 1ère trace fonctionne bien
    • La 2nde trace montre que dans le fichier http://domain3.net/template.css référencé dans le résultat de la première requête il y a une URL absolue vers http://www.do-main2.com/global-forms.css qui n'existe pas. C'est fort possible : vérifier le contenu de cette CSS.
    • La 3ème trace est la même chose que la 2nde requête mais pour http://www.do-main2.com/images/bg.png. Idem : vérifier le contenu de la CSS.
    • La 4ème trace montre une redirection temporaire mais je ne sais pas où, donc je ne peux rien dire.


    Du coup, est-ce que tu peux vérifier la CSS et donner des traces synchronisées de l'access log et de l'error log ?

  11. #11
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    non c'est pas du tout normal. Il n'y a aucun lien vers domain2.

    le lien dans le code source c'est vers http://domain3.net/blahblah

    Mais apache fait pointer tout ce qui a pas de sous domaine vers domain2.
    Du coup comme un c*nnard je suis oblige de faire des lien symbolique dans mon arborescence pour qu'il aille chercher le dossier au bon endroit.

  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 _Mac_ Voir le message
    est-ce que tu peux [...] donner des traces synchronisées de l'access log et de l'error log ?

    Tu es sûr de ne pas pouvoir mettre en cause le code HTML de ton site ?

    Dans sites-enabled, y a que les 3 fichiers que tu as donné ou y en a d'autres (default par exemple) ? Tu peux nous donner le contenu de ces autres fichiers s'ils existent ?

  13. #13
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Tu es sûr de ne pas pouvoir mettre en cause le code HTML de ton site ?
    Dsl, j'avais zappe ca.
    Donc a ce meme moment dans error.log:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Tue May 17 15:30:45 2011] [error] [client 71.000000] File does not exist: /var/www/do-main2.com/eded/global-forms.css, referer: http://domain3.net/template.css
    [Tue May 17 15:30:45 2011] [error] [client 71.100000] File does not exist: /var/www/do-main2.com/eded/images, referer: http://domain3.net/template.css

    Citation Envoyé par _Mac_ Voir le message
    Dans sites-enabled, y a que les 3 fichiers que tu as donné ou y en a d'autres (default par exemple) ? Tu peux nous donner le contenu de ces autres fichiers s'ils existent ?
    Je n'ai que les trois fichiers.

  14. #14
    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
    Franchement hallucinant... Il se passe quoi si tu commentes tous les ServerAlias ?

    Y a quand même plusieurs trucs qui ne vont pas dans ta conf. Ca n'a pas de sens de mettre en même temps DocumentRoot et VirtualDocumentRoot : si tu veux utiliser à un moment donné VirtualDocumentRoot, tu ne peux pas garer DocumentRoot, car ça rentre en conflit. Au mieux, Apache ignore DocumentRoot mais le plus simple, c'est de ne pas le mettre du tout.

    Ensuite, si tu as ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            ServerAlias *.domain3.net
            VirtualDocumentRoot /var/www/domain3.net/%1
    Evidemment, si tu demandes www.domain3.net, le document root associé sera /var/www/domain3.net/www, mais si tu demandes juste domain3.net, le document root asssocié sera /var/www/domain3.net/domain3. Est-ce le comportement souhaité ? Si le but est d'utiliser le même document root /var/www/domain3.net/ quelque soit le host name demandé (www.domain3.net ou domain3.net), dans ce cas il ne faut pas utiliser VirtualDocumentRoot mais mettre DocumentRoot /var/www/domain3.net/.

    Dernier point : le DocumentRoot ne doit jamais se terminer par un /.

  15. #15
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    quand je commente tous les ServerAlias, a chaque fois que je rentre un sous domaine pour domain1.com ou domain3.net il va le chercher sur www.do-main2.com

    Alors qu'avant il ne faisait ca que pour le sous domaine www.

    Mon but final est de gerer pour chaque domaine(domain1.com, do-main2.com, domain3.com, domainX.tld) les sous domaine automatiquement.
    en gros j'ai mon arborescence suivante:
    +/var/www/domainX.tld/
    |- www/
    |- sous-domaine1/
    |- sous-domaine2/
    |- sous-domaine3/
    (faut quoter pour voir la bonne arborescence)
    Le but est que /var/www/domain3.net/ soir le dossier pour les sous domaine que lorsque que je tape juste domain3.com il aille dans /var/www/domain3.net/domain3. Ce dossier etant un lien symbolique vers /var/www/domain3.net/www

  16. #16
    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 sèche complètement. La dernière idée que j'ai c'est de passer les logs d'Apache en debug () pour comprendre ce qu'Apache fait. Retire toujours les DocumentRoot qui ne servent à rien, ce sera toujours ça en moins comme source possible d'erreur.

  17. #17
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Je ne connaissais pas ce truc la
    Je suppose qu'il faut chercher dans error.log ?
    Si oui:
    [Wed May 18 21:45:35 2011] [debug] mod_deflate.c(615): [client 67.116.238.99] Zlib: Compressed 2676 to 1148 : URL /index.php, referer: http://domain3.net/archive
    [Wed May 18 21:45:35 2011] [error] [client 67.116.238.99] File does not exist: /var/www/do-main2.com/domain3/images, referer: http://domain3.net/template.css
    [Wed May 18 21:45:35 2011] [debug] mod_deflate.c(615): [client 67.116.238.99] Zlib: Compressed 221 to 175 : URL /images/bg.png, referer: http://domain3.net/template.css
    [Wed May 18 21:45:35 2011] [debug] mod_deflate.c(615): [client 67.116.238.99] Zlib: Compressed 2712 to 1022 : URL /error.php, referer: http://domain3.net/template.css
    [Wed May 18 21:45:36 2011] [debug] mod_deflate.c(615): [client 67.116.238.99] Zlib: Compressed 8334 to 2042 : URL /archive.php, referer: http://domain3.net/
    [Wed May 18 21:45:36 2011] [error] [client 67.116.238.99] File does not exist: /var/www/do-main2.com/domain3/images, referer: http://domain3.net/template.css
    [Wed May 18 21:45:36 2011] [debug] mod_deflate.c(615): [client 67.116.238.99] Zlib: Compressed 221 to 175 : URL /images/bg.png, referer: http://domain3.net/template.css
    [Wed May 18 21:45:36 2011] [error] [client 67.116.238.99] PHP Notice: session_start() [<a href='function.session-start'>function.session-start</a>]: ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13) in /var/www/domain1.com/domain3/includes/header.inc.php on line 8, referer: http://domain3.net/template.css
    [Wed May 18 21:45:36 2011] [debug] mod_deflate.c(615): [client 67.116.238.99] Zlib: Compressed 2981 to 1166 : URL /error.php, referer: http://domain3.net/template.css

  18. #18
    Invité
    Invité(e)
    Par défaut
    Salut,

    Serait-il possible d'avoir un peu plus de détail sur l'application qui tourne sur tes 3 domaines? s'agit-il d'un package ou d'une application "maison". As-tu des références vers des urls complètes dans tes pages php ou dans les fichiers de config de l'application?

  19. #19
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par Mygale1978 Voir le message
    Salut,

    Serait-il possible d'avoir un peu plus de détail sur l'application qui tourne sur tes 3 domaines? s'agit-il d'un package ou d'une application "maison". As-tu des références vers des urls complètes dans tes pages php ou dans les fichiers de config de l'application?
    Sur http://www.domain1.com et http://domain1.com il n'y a rien, juste une page php qui fait un header(location: google.com)

    Sur http://www.do-main2.com et http://do-main2.com j'host un forum phpBB pour des amis

    Sur http://www.domain3.net et http://domain3.net il y un site homemade.

    Et a partir de maintenant sur domain3.net je n'ai que des reference sur les url complete.

Discussions similaires

  1. Redirection 301 dans un hôte virtuel
    Par okalyptus dans le forum Apache
    Réponses: 1
    Dernier message: 25/11/2013, 11h25
  2. Redirection et configuration d'hôtes virtuels
    Par FredodidoO dans le forum Apache
    Réponses: 18
    Dernier message: 28/01/2012, 17h02
  3. [VMWare] problème de ping entre hôtes
    Par Eusebius dans le forum Développement
    Réponses: 3
    Dernier message: 04/07/2006, 08h56
  4. Réponses: 1
    Dernier message: 23/01/2006, 07h25
  5. [Tomcat]Ajout d'un hôte virtuel sous tomcat
    Par ouss dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 26/12/2005, 18h03

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