Forum Linux.debian/ubuntu [Auto-hébergement] Apache2 VirtualHosts par noms fonctionnement aléatoirement

Posté par . Licence CC by-sa
0
21
mai
2017

Salut à tous ;)

Je me permet de poster car j'ai du mal avec les Virtualhosts par noms d'Apaches.
J'ai installé un nouveau truc sur mon serveur web, je lui ai assigné le domaine "dns.wargof.xyz" en ServerName et "wargof.xyz" en ServerAlias ( c'est mon seul domaine en .xyz ).
Mon domaine n'est pas encore propagé, je l'ai donc fixé dans mon "/etc/hosts". Le truc c'est qu'en tapant son URL je tombe systèmatiquement soit sur mon site perso, soit sur mon blog ou soit, comme aujourd'hui, sur mon wiki.

Je suis conscient que je doit faire une erreur quelques part mais sa fait plusieurs semaines et je n'ai toujours pas capté ce qui ne va pas exactement.

Voilà en liens mes principaux VirtualHosts :

Le fameux VirtualHosts qui ne marche pas : Pastebin

Les VirtualHosts qui tombent à la place en général : Pastebin Pastebin  Pastebin

J'en ai une dizaine de VirtualHosts mais ils sont tous bâtis sur le même modèle.

Voilà, voilà si vous avez un quelconque indice sur le pourquoi du comment je vous en serais très reconnaissant ;)

  • # Ordre des vhosts dans apache et varnish

    Posté par (page perso) . Évalué à 3.

    On a eu des problèmes similaires. Apache avait l'air d'envoyer des requêtes vers des vhosts aléatoirement.
    En fait, c'était du au fait que le 1er vhost lu est défini comme vhost par défaut, on utilise un fichier par vhost et le nom du servername est utilisé comme nom de fichier. Donc maintenant, ce qu'on fait, c'est de renommer le default.conf en 000-default.conf et les autres en 001-aaaa-domaine-qui-commence-par-un-a.conf, 001-www.*.conf et ainsi de suite.
    Le default ne sert qu'à afficher une page d'erreur disant que le vhost n'est pas défini.

    On a également un autre bug mais c'était du à des règles varnish. On gérait example.net et et www.example.net, même si c'était le même nom de domaine, c'était 2 sites totalement diffèrent. Dans apache, la requête tombait sur le bon vhost, le problème n'était pas là. Mais dans varnish, nous avions ce style de règles:

    sub vcl_recv {
    if (req.http.X-Forwarded-Host ~ "www.example.net") {
    set req.backend = wwwexamplenet;
    }
    }
    et

    sub vcl_recv {
    if (req.http.X-Forwarded-Host ~ "example.net") {
    set req.backend = examplenet;
    }
    }
    Et donc parfois, on tombait sur le mauvais backend. C'était juste un problème de regexp.
    Il a suffit de mieux fixer la regexp en forçant le match de début de string: eq.http.X-Forwarded-Host ~ "www.example.net"

    Je ne dis pas que c'est la même chose que ton problème mais ce sont des pistes :o

  • # Dump vhost

    Posté par (page perso) . Évalué à 8.

    Une commande pratique pour savoir quel est le vhost par défaut, c'est, sous Debian et dérivés, apache2ctl -D DUMP_VHOSTS, cela te permettra déjà de voir si la config est bien lue comme tu le pense.

    « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

    • [^] # Re: Dump vhost

      Posté par (page perso) . Évalué à 1.

      oh, p… merci !!!
      T'en as d'autres des commandes de debug magiques comme ça ?

      http://gregr.fr

  • # Par nom ou par IP il faut choisir

    Posté par . Évalué à 2. Dernière modification le 22/05/17 à 13:50.

    https://httpd.apache.org/docs/2.2/vhosts/name-based.html
    https://httpd.apache.org/docs/2.2/vhosts/ip-based.html

    Dans les fichiers que tu indiques tu mélanges hôtes virtuels par nom et par IP. À moins que tu n'aies besoin d'utiliser plusieurs IP différentes, il faut que tu modifies tous tes blocs ainsi :
    <VirtualHost *:80 >

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.