2016-09-15 2 views
0

Accéder à un site web sur un serveur Nginx avec l'adresse IP sur laquelle plusieurs noms de domaine/sites/applications sont servis et il n'y a pas de serveur/conf par défaut ouvrira le premier domaine alphabétique sur cette IP.Nginx accéder à plusieurs domaines avec IP sans défaut serveur/conf

Est-ce VRAI ou FAUX?

Et cela peut-il être écrasé si TRUE?

+0

Faux. Si l'adresse IP est transmise à Nginx au lieu d'un nom de domaine, elle tombera dans le bloc serveur par défaut. Si aucun bloc de serveur par défaut n'est spécifié, il tombera dans le premier bloc correspondant de votre configuration. En bref, vous devez toujours spécifier un bloc de serveur par défaut. –

+0

Oui, je n'ai pas de bloc de serveur par défaut .... cette citation est ce qui m'intéresse: "il tombera au premier bloc correspondant" dont on est le premier ???? Je pense qu'il va alphabétiquement – lewis4u

Répondre

2

Faux. Parce que cela dépend de votre config.

Au cours de la recherche d'un serveur virtuel par nom, si le nom correspond plus d'une des variantes spécifiées, (par exemple à la fois un nom générique et correspondance d'expression régulière), la première variante de mise en correspondance sera choisi, dans l'ordre de priorité suivant:

  1. le nom exact

  2. le plus long nom générique commençant par un astérisque, par exemple "* .example.com"

  3. le plus long nom générique se terminant par un astérisque, par ex. « Courrier. * »

  4. la première expression régulière correspondant (par ordre d'apparition dans le fichier de configuration )

Si aucune correspondance trouvée, nginx acheminera la demande au serveur par défaut pour ce port. Le serveur par défaut est le premier dans votre fichier de configuration - qui est le comportement par défaut standard de nginx. Si tous les serveurs utilisent la directive include avec les fichiers inclus dans le masque classés par ordre alphabétique (par nom de fichier, pas par nom de domaine dans nom_serveur).

Le serveur par défaut peut également définir explicitement le serveur par défaut, avec le paramètre default_server dans la directive listen.

En outre, vous pouvez ajouter server_name avec IP comme nom, si vous avez besoin de différents comportements pour accéder au serveur via IP et via un nom de domaine inconnu. UPD: En cas d'accès à nginx via IP, le nom d'hôte sera égal à IP. Ainsi, nginx commencera à trouver nom_serveur qui correspond au nom d'hôte IP. Tout ce qui est décrit ci-dessus reste valable.

+0

Désolé mais vous avez nommé tous les faits comme si je veux accéder au serveur avec le nom de domaine (tel que: domain_name.com) mais je veux y accéder avec l'adresse IP .... tout est local et c'est la raison pour laquelle je ne peux pas l'obtenir avec le nom de domaine .... je connais toutes les options pour l'obtenir ...(Je pourrais éditer un dossier d'hôtes et mettre le nom de domaine et l'IP, je pourrais faire ce nom de domaine comme domaine simple sur ce serveur ou je pourrais le définir comme serveur par défaut) mais la question demeure: Si vous accédez à un IP 192.168 .0.50 quel domaine va être ouvert s'il y en a plus d'un et qu'il n'y a pas de défaut – lewis4u

+0

Accès via IP identique à l'accès par nom de domaine. Ce nom d'hôte sera égal à IP. Ainsi, nginx commencera à trouver server_name qui correspond au nom d'hôte 192.168.0.50. Comportement de nginx en cas d'absence de nom_serveur - décrit dans ma réponse :) –

+0

Trop écrit .... seulement ceci est important: si l'on accède au serveur via ip et qu'aucun serveur par défaut n'est configuré, toutes les configurations de domaine sont "triées par ordre alphabétique (par nom de fichier, pas par nom de domaine dans nom_serveur) " – lewis4u