Re: Отдача большого контента через fast_cgi

Alex, the Marrch Ca'at marrch.caat на gmail.com
Пн Ноя 30 12:36:09 MSK 2009


2009/11/29 Maxim Dounin <mdounin at mdounin.ru>:
> Hello!
>
> On Sun, Nov 29, 2009 at 07:22:43PM +0300, Igor Sysoev wrote:
>
>> On Sun, Nov 29, 2009 at 07:05:12PM +0300, Maxim Dounin wrote:
>>
>> > > > > > > > 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;
>> > > > >
>> > > > > Дальше будем продолжать? :)
>> > > >
>> > > > Тогда можно оставлять без изменения символ после "\" и "?".
>> > >
>> > > Патч.
>> >
>> > server_name "~^www(?<number>\p{N}+)\.example\.com$";
>>
>> Какой человек, находясь в трезвом уме и светлой памяти, напишет "\p{N}"
>> вместо "\d" ? Я, например, про "\p{N}" узнал только что из pcresyntax(3) :)
>
> Кто сказал - человек?  Давно уже всеми подобными вещами занимаются
> огромные боевые человекоподобные роботы.  ;)
>
>> > Вот что действительно можно сделать - это не ставить caseless
>> > если в регулярном выражении не нашлось ни одного символа в верхнем
>> > регистре.  Это должно быть безопасно.
>>
>> Да, лучше сделать так.
>
> Патч.
>
> Maxim Dounin

Игорь, скажите - этот (последний) патч войдет в очередную сборку nginx?


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