Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Проблема с порядко м применения server_name
On Mon, Sep 14, 2009 at 04:16:15PM +0700, Vitaliy Lisenko wrote:
> Первым в конфе идет
> Речь об Одном айпи (одинаковый для сотен доменов, плюс по регуляркам
> еще поддомены
>
> server {
>
> listen 1.1.1.1:80 default sndbuf=8k;
> server_name 1.1.1.1;
>
> location /
> {.............................................................................................................................
> deny all;
> }
>
> типо для того, чтобы непрописанный хост не вел куда попал, а отдавал 403..
> а "оно" (к примеру superpuper.com) под регулярку "попало". под
> которую в принципе не должно было попасть никогда.
> потом include dir1/*.conf;
> потом include dir2/*.conf;
> в папке дир2 лежит конф
> server
> {.......................................................................................................................
> listen 1.1.1.1:80;
> server_name www.site.ru ~ ([a-z.0-9-]+)\.site\.ru$;
Похоже, проблема из-за пробела между "~" и выражение. Сейчас nginx просто
формирует пустое выражение, под которое попадает всё. Нужно так:
- server_name www.site.ru ~ ([a-z.0-9-]+)\.site\.ru$;
+ server_name www.site.ru ~([a-z.0-9-]+)\.site\.ru$;
> 14 сентября 2009 г. 16:09 пользователь Igor Sysoev <is@xxxxxxxxxxxxx> написал:
> > On Mon, Sep 14, 2009 at 03:56:53PM +0700, Vitaliy Lisenko wrote:
> >
> >> нет, это прописано не в первом блоке серверНеймов, это инклуд 5 по счету
> >
> > Сервера висят на одних и тех же адресах ? Или есть специфичные
> >
> > listen x.x.x.x:80;
> >
> > ?
> >
> >> 14 сентября 2009 г. 15:45 пользователь Peter Leonov <gojpeg@xxxxxxxxx>
> >> написал:
> >> >
> >> > On 14.09.2009, at 12:08, Vitaliy Lisenko wrote:
> >> >
> >> >> я месяца два назад поймал глюк с именами сайтов.
> >> >> Просил Дениса Латыпова отписать понятным общественности языком, но он
> >> >> ,видимо , не отписал.
> >> >> попытаюсь сам рзвить проблемку с именами доменов:
> >> >>
> >> >> проблема схожая, только с регуляркой .
> >> >> server_name www.site.ru ~ ([a-z.0-9-]+)\.site\.ru$;
> >> >> в реальности под него попадает почему-то вообще любой домен, не
> >> >> описаный своим сервернеймом
> >> >
> >> > Если этот server_name описан в первом блоке server, то так и должно быть.
> >> > Первый блок server становится сервером по умолчанию, если не указано
> >> > иное.
> >> >
> >> >> nginx/0.8.7
> >> >>
> >> >>
> >> >>
> >> >> 6 сентября 2009 г. 22:32 пользователь Igor Sysoev <is@xxxxxxxxxxxxx>
> >> >> написал:
> >> >>>
> >> >>> On Thu, Sep 03, 2009 at 12:30:58AM +0400, Vladimir Marunin wrote:
> >> >>>
> >> >>>> Hello Alexey,
> >> >>>>
> >> >>>> Первым делом поменял местами. Не помогло.
> >> >>>> Помогла запись вида
> >> >>>> server {
> >> >>>> server_name ta.com *.ta.com;
> >> >>>> ...
> >> >>>> }
> >> >>>>
> >> >>>> Правда после этого я получил ошибку про маленький
> >> >>>> server_names_hash_max_size, но это уже мелочи.
> >> >>>>
> >> >>>> Похоже, что .ta.com трактуется как полное имя, хотя и совпадает с
> >> >>>> неполными. Точное указание имён спасает.
> >> >>>
> >> >>> Можешь прислать мне список серверов в виде
> >> >>>
> >> >>> server {
> >> >>> server_name ...;
> >> >>> }
> >> >>>
> >> >>> server {
> >> >>> server_name ...;
> >> >>> }
> >> >>>
> >> >>> ?
> >> >>>
> >> >>>> Thursday, September 3, 2009, 12:10:30 AM, you wrote:
> >> >>>>
> >> >>>>> а менять местами server{} пробовали?
> >> >>>>> вдруг ...
> >> >>>>
> >> >>>>> On 02.09.2009, at 22:39, Vladimir Marunin wrote:
> >> >>>>
> >> >>>>>> Hello nginx-ru,
> >> >>>>>>
> >> >>>>>> Имеется nginx 0.6.31 (на Debian etch) для него автоматически
> >> >>>>>> пишется
> >> >>>>>> конфигурация на сотню server по такому шаблону (домен вымышленный,
> >> >>>>>> конфигурацию показать не могу)
> >> >>>>>>
> >> >>>>>> server {
> >> >>>>>> server_name .crm.ta.com;
> >> >>>>>> listen 80;
> >> >>>>>> ...
> >> >>>>>> }
> >> >>>>>> ...
> >> >>>>>> server {
> >> >>>>>> server_name .ta.com;
> >> >>>>>
> >> >>>>> а если попробовать вот так:
> >> >>>>> server_name *.ta.com;
> >> >>>>> ...
> >> >>>>> }
> >> >>>>> server {
> >> >>>>> server_name ta.com;
> >> >>>>> ??
> >> >>>>
> >> >>>>>> listen 80;
> >> >>>>>> ...
> >> >>>>>> }
> >> >>>>>>
> >> >>>>>> Почему-то запрос http://crm.ta.com попадает во вторую секцию, хотя
> >> >>>>>> надо в первую.
> >> >>>>>> По debug логу видно, что его несёт именно в ta.com.
> >> >>>>>>
> >> >>>>>> Раньше всё работало нормально, но после какого-то изменения в
> >> >>>>>> конфиге
> >> >>>>>> перестало, момент изменения не известен :(
> >> >>>>>>
> >> >>>>>> Вопрос: как можно понять логику выбора server у nginx? Какой лог
> >> >>>>>> может
> >> >>>>>> подсказать как проходит выбор домена?
> >> >>>>>>
> >> >>>>>> --
> >> >>>>>> Best regards,
> >> >>>>>> Vladimir mailto:marunin@xxxxxxxxx
> >> >>>>>>
> >> >>>>>>
> >> >>>>
> >> >>>>
> >> >>>>
> >> >>>>
> >> >>>> --
> >> >>>> Best regards,
> >> >>>> Vladimir mailto:marunin@xxxxxxxxx
> >> >>>>
> >> >>>
> >> >>> --
> >> >>> Игорь Сысоев
> >> >>> http://sysoev.ru
> >> >>>
> >> >>>
> >> >
> >> > С уважением,
> >> > Петр Леонов.
> >> > +7 (905) 758-12-73
> >> >
> >> >
> >> >
> >
> > --
> > Игорь Сысоев
> > http://sysoev.ru
> >
> >
--
Игорь Сысоев
http://sysoev.ru
|