Re: Конкурирующие сервера
Igor Sysoev
igor на sysoev.ru
Ср Апр 20 17:33:41 MSD 2011
On Wed, Apr 20, 2011 at 09:18:13AM -0400, m.latyshev wrote:
> Igor Sysoev Wrote:
> -------------------------------------------------------
> > On Wed, Apr 20, 2011 at 08:48:56AM -0400,
> > m.latyshev wrote:
> > > Простейшая конфигурация
> > (для теста):
> > >
> > > server {
> > > listen 80 default_server;
> > > server_name _;
> > > return 404;
> > > }
> > >
> > > server {
> > > listen 80;
> > > server_name example.com;
> > > location / {
> > > rewrite ^.*$ /index.html break;
> > > if_modified_since off;
> > > expires -1;
> > > root /var/www/tests/first/;
> > > }
> > > }
> > >
> > > server {
> > > listen 80;
> > > server_name .example.com;
> > > location / {
> > > rewrite ^.*$ /index.html break;
> > > if_modified_since off;
> > > expires -1;
> > > root /var/www/tests/second/;
> > > }
> > > }
> > >
> > >
> > > Т.е. все различие между 2 и 3
> > секцией server
> > > только в том, что в 3 секции
> > у server_name есть
> > > "." перед именем домен, а во
> > второй нет,
> > > ну и root разные.
> > > Согласно документации
> > ".example.com"
> > > идентично "example.com *.example.com",
> > но при
> > > использовании
> > сокращенной формы при
> > > реконфиге получаем
> > варнинг:
> > > nginx: [warn] conflicting server name
> > ".example.com" on 0.0.0.0:80,
> > > ignored
> > >
> > > И все запросы на sub.example.com
> > выдают 404.
> > >
> > > Если не использовать
> > сокращенную
> > > запись, то все работает
> > корректно, т.е.
> > > запросы на example.com попадают
> > во вторую
> > > секцию, а все запросы на
> > sub.example.com в
> > > третью, варнинг при этом
> > тоже конечно
> > > есть.
> > >
> > > Чем можно объяснить такое
> > поведение?
> > > Это баг?
> > >
> > > P.S. Конфиг для nginx
> > собирается
> > > динамически, поэтому
> > хотелось бы
> > > использовать именно такой
> > вариант, т.е.
> > > вручную развернуть
> > сокращенную запись
> > > в полную нет возможности.
> >
> > Из-за конфликта в хеш имён
> > не добавляются обе формы,
> > которые
> > соответствуют .example.com.
> >
>
> Это считается корректным поведением?
> Или будет когда-нибудь исправлено?
Это корректное поведение. Если задано .example.com, то в хэше должно
храниться именно .example.com, а не example.com или *.example.com.
--
Igor Sysoev
Подробная информация о списке рассылки nginx-ru