У меня есть несколько «серверных» блоков в моем nginx.conf. Документация кажется неправильной относительно порядка, в котором происходит сопоставление имени сервера.
Мой конф выглядит примерно так:
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
}
Я пытаюсь выяснить, почему запросы с host = www.sub.domain.com направляются в правильное место (второй сервер), когда в документации указано, что он должен идти на первый сервер.
Документация Nginx указывает, что серверные блоки проверяются на «совпадение» на совпадения, что означает, что любой запрос с хостом * .sub.domain.com должен быть перехвачен первым сервером, а не вторым сервером. ( http://wiki.nginx.org/HttpCoreModule#server_name )
Кроме того, подстановочный знак * соответствует любому количеству частей субдомена, поэтому * .domain.com соответствует www.sub.domain.com. ( http://nginx.org/en/docs/http/server_names.html#wildcard_names )
Если эта документация неверна, каков фактический порядок сопоставления?