Re: Отдача большого контента через fast_cgi
Maxim Dounin
mdounin на mdounin.ru
Вс Ноя 29 18:46:13 MSK 2009
Hello!
On Sun, Nov 29, 2009 at 06:29:09PM +0300, Igor Sysoev wrote:
> On Sun, Nov 29, 2009 at 06:24:33PM +0300, Maxim Dounin wrote:
>
> > Hello!
> >
> > On Sun, Nov 29, 2009 at 05:41:18PM +0300, Igor Sysoev wrote:
> >
> > > On Sun, Nov 29, 2009 at 04:51:51PM +0300, Igor Sysoev wrote:
> > >
> > > > On Sun, Nov 29, 2009 at 04:35:42PM +0300, Maxim Dounin wrote:
> > > >
> > > > > Hello!
> > > > >
> > > > > On Sun, Nov 29, 2009 at 05:50:06PM +0600, Peter A. Shevtsov wrote:
> > > > >
> > > > > > Увы!
> > > > > > [emerg]: pcre_compile() failed: unrecognized character after (? in
> > > > > > "^www\.(?p<name>.+)$" at "p<name>.+)$" in
> > > > > > /etc/nginx/conf.d/virtual.conf:7
> > > > >
> > > > > А вот это уже бага - nginx приводит регулярное выражение к нижнему
> > > > > регистру, что делает его невалидным.
> > > > >
> > > > > Патч.
> > > >
> > > > Я думаю, лучше проверять "?P<" на стадии конфигурации, чем гонять caseless
> > > > в run-time. Вроде, кроме "?P<", больше таких конструкций нет ?
> > >
> > > Другой патч. В принципе, PCRE использует большие буквы в опциях и прочем,
> > > но насколько я понимаю, в контексте server_name все они, кроме "?P<",
> > > не имеют смысла.
> >
> > Не-а.
> >
> > server_name ~^(?<name>.+)\Q.example.com\E;
> >
> > Дальше будем продолжать? :)
>
> Тогда можно оставлять без изменения символ после "\" и "?".
Там есть ещё character class'ы, conditional patterns и
backtracking control.
Не говоря уже о том что "\" или "?" вполне могут присутствовать
как просто символы. Смысл внутри server_name загадочен, но я
вполне себе представляю пытающихся это делать борцов с очередным
DDoS'ом.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru