J'ai plusieurs blocs "serveur" dans mon nginx.conf. La documentation semble erronée sur l'ordre dans lequel la correspondance nom_serveur a lieu.
Ma conf ressemble à quelque chose comme:
server {
listen 80
server_name domain.com *.domain.com
# do stuff
}
server {
listen 80
server_name sub.domain.com *.sub.domain.com
# do something else
}
J'essaie de comprendre pourquoi les demandes avec host = www.sub.domain.com vont au bon endroit (le deuxième serveur), lorsque la documentation indique qu'elle devrait aller au premier serveur.
La documentation Nginx indique que les blocs serveur sont vérifiés "dans l'ordre" pour les correspondances, ce qui signifie que toute demande avec l'hôte * .sub.domain.com doit être interceptée par le premier serveur, pas le deuxième serveur. ( http://wiki.nginx.org/HttpCoreModule#server_name )
De plus, le caractère générique * correspond à n'importe quel nombre de parties de sous-domaine, donc * .domain.com correspond à www.sub.domain.com. ( http://nginx.org/en/docs/http/server_names.html#wildcard_names )
Si cette documentation est erronée, quel est l'ordre de correspondance réel?