On 16.12.2007, at 16:53, Igor Sysoev wrote: On Sun, Dec 16, 2007 at 04:42:08PM +0300, Alexey V. Karagodov wrote:
On 16.12.2007, at 16:30, Igor Sysoev wrote:
On Sun, Dec 16, 2007 at 04:24:13PM +0300, Alexey V. Karagodov wrote:
On 16.12.2007, at 16:08, Igor Sysoev wrote:
Нет.
Во-первых, "*" обычно воспринимается как совпадение с любым именем.
А в "server_name www.example.com *" она означает не совпадение,
а лишь сохранение имени во время редиректа.
Во-вторых, использовать localhost как специальную замену основного
имени нельзя, так как имя вполне существующее.
может быть тогда по аналогии с директивой internal; (просто и со
вкусом) сделать директиву default; или default_server; ?
В смысле
default_server;
?
Сервер по умолчанию определяется в listen:
listen 80 default;
это разные уровни OSI
www.example.com - тоже вполне существующее имя
Ну так это вполне рабочее имя данное в качестве примера основного имени, а не заглушки. и с помощью
default_server;
можно будет решить оба поставленных вопроса:
Я не понимаю, как эта директива решит эти проблемы.
" $host, эта переменная равна строке "Host" в заголовке запроса или имени сервера, на который пришёл запрос, если этой строки нет;" Куда её вставлять в такой конфигурации
server { listen 80 default;
- server_name *; #(можно не указывать, ибо нет смысла при наличии: + default_server; } server { listen 80; server_name mail.*; } server { listen 80; server_name pics.*; } 1) в запросе не указано имя вообще,
2) или имя есть, но оно не совпало ни с одним из описанных, и
управление
попало в дефолтный сервер.
поскольку дефолтный сервер имеет смысл прежде всего для listen-пары.
-- Игорь Сысоев http://sysoev.ru
|