Re: Маска в server name

Maxim Dounin mdounin at mdounin.ru
Thu Dec 13 13:01:10 UTC 2012


Hello!

On Thu, Dec 13, 2012 at 06:13:06AM -0500, dga65 wrote:

> Чего - то я недосоображаю. 
> В таком варианте - не работает.
> 
> server {
> <------><------>listen 80;
> <------><------>server_name *.dev.sample.com;
> <------><------>location = /robots.txt {
> <------><------>root /home;
> <------><------>}
> <------>}
> 
> В таком - работает.
> 
> server {
> <------><------>listen 80;
> <------><------>server_name hotel.rexx.dev.sample.com;
> <------><------>location = /robots.txt {
> <------><------>root /home;
> <------><------>}
> <------>}
> 
> Очевидно проблема в обработке маски, я уже перерыл ман
> http://nginx.org/ru/docs/http/server_names.html - не могу понять в чем дело.

В чём заключается "не работает"?   Запрос к конкретному доменному 
имени hotel.rexx.dev.sample.com в первом случае обрабатывается в 
нужном блоке server{}, а во втором - нет?

Если да, то вероятнее всего дело в _других_ блоках server{} в 
вашем конфиге, которые оказываются более специфичными для данного 
имени.  Приоритет различных вариантов задания имени документирован 
по приведённой вами ссылке, и интересующая нас в данном случае 
часть:

    - точное имя
    - самое длинное имя с маской в начале, например “*.example.org”

Т.е. если не работает - следует искать в конфиге либо точные имена 
(т.е. собственно hotel.rexx.dev.sample.com), либо более длинные 
имена с маской в начале (e.g. *.rexx.dev.sample.com, .rexx.dev.sample.com).

-- 
Maxim Dounin
http://nginx.com/support.html



Подробная информация о списке рассылки nginx-ru