Maison  >  Questions et réponses  >  le corps du texte

hôte virtuel Apache

Je recherchais récemment des hôtes virtuels, puis j'ai configuré deux hôtes virtuels comme suit

L'un d'eux a ServerName défini sur 127.0.0.1. Ajoutez ensuite

au fichier hosts sur le lecteur C

Puis la question se pose.
Lorsque je saisis directement www.abc.com dans le navigateur, j'accéderai au projet E:/wamp/crm Pourquoi ? www.abc.com ne correspond-il pas à 127.0.0.1 dans les hôtes ? Ne devrait-il pas être accessible par E:/wamp/wamp/www ? Puis lorsque je saisis directement 127.0.0.1 dans le navigateur, j'accède au projet E:/wamp/wamp/www? Je ne comprends tout simplement pas ici. . . . S'il te plaît, aide-moi, mon Dieu. . . . . .

伊谢尔伦伊谢尔伦2683 Il y a quelques jours782

répondre à tous(3)je répondrai

  • PHP中文网

    PHP中文网2017-05-16 16:59:58

    Le document officiel est ici : Une discussion approfondie sur la correspondance des hôtes virtuels

    Vous appartenez à "Name-based vhost", lisez simplement ce paragraphe :

    S'il existe plusieurs directives VirtualHost répertoriant l'adresse IP
    et la combinaison de ports qui ont été déterminées comme étant la meilleure correspondance, la
    "liste" dans les étapes restantes fait référence à la liste des vhosts qui
    correspondaient, dans l'ordre dans lequel ils se trouvaient. le fichier de configuration.

    Permettez-moi de le traduire brièvement. Lorsque l'adresse IP et le port du vhost correspondent (c'est *:80 ici), Apache les fera correspondre dans l'ordre en fonction de l'ordre des vhosts dans le fichier de configuration du vhost.

    Si la connexion utilise SSL, le serveur prend en charge le nom du serveur
    Indication et la prise de contact du client SSL inclut l'extension TLS
    avec le nom d'hôte demandé, alors ce nom d'hôte est utilisé ci-dessous tout comme l'en-tête Host: serait utilisé sur un connexion non SSL.
    Sinon, le premier vhost basé sur le nom dont l'adresse correspond est utilisé
    pour les connexions SSL. Ceci est important car le vhost détermine
    quel certificat le serveur utilisera pour la connexion.

    .
    S'il s'agit d'une connexion SSL, le nom d'hôte sera trouvé en fonction du SNI dans les informations de négociation TLS. Si SNI n'est pas pris en charge, il sera mis en correspondance avec le premier hôte virtuel dont l'adresse IP et le port (ici se réfère toujours à *:80) correspondent.

    Si la requête contient un champ d'en-tête Host:, la liste est recherchée

    le premier hôte virtuel avec un nom de serveur ou un alias de serveur correspondant, et la
    demande est servie à partir de ce hôte virtuel. Un champ d'en-tête Host: peut contenir un
    numéro de port, mais Apache l'ignore toujours et compare le port réel auquel le client a envoyé la demande.

    Si l'en-tête HTTP contient des informations sur l'hôte, il sera associé au premier hôte virtuel correspondant
    . Parfois, l'hôte contiendra des informations sur le port, mais Apache ne lira pas ce port.

    ServerName或者ServerAliasLe premier vhost du fichier de configuration avec l'adresse IP spécifiée a la priorité la plus élevée et intercepte toute requête adressée à un nom de serveur inconnu, ou une requête sans champ d'en-tête Host: (telle qu'une requête HTTP/1.0).

    S'il n'y a pas de correspondance, envoyez-le au vhost qui correspond au premier port IP (en faisant référence à votre *:80)

    Le site abc.com que vous avez visité est-il le premier CRM ? Non, est-ce 127.0.0.1 (uniquement si vous saisissez 127.0.0.1 directement dans la barre d'adresse) ? Non, alors utilisez la valeur par défaut, qui est la configuration du premier CRM.

    répondre
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 16:59:58

    Personnellement, je pense que serverName est inutile, donc selon le principe d'adaptation prioritaire, le port 80 est directement la première règle. Si vous souhaitez vraiment connecter deux sites, utilisez simplement le numéro de port pour les distinguer~
    Vous pouvez également lire la documentation. Traducteur recommandé pour les documents chinois : Jin Buguo.

    répondre
    0
  • 大家讲道理

    大家讲道理2017-05-16 16:59:58

    Le nom de domaine est utilisé pour résoudre en IP, donc les deux sont 127.0.0.1
    Et vos deux ports sont également 80, vous ne pouvez donc accéder qu'au premier

    Vous remplacez le suivant par 8080 et utilisez le port 8080 pour accéder au second

    répondre
    0
  • Annulerrépondre