ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [feature request] X-Sendfile



On Monday 24 April 2006 15:24, Igor Sysoev wrote:
> On Mon, 24 Apr 2006, Sergey Serov wrote:
> > On Monday 24 April 2006 14:19, Igor Sysoev wrote:
> >> On Mon, 24 Apr 2006, Sergey Serov wrote:
> >>>> Прилагаемый патч, превращает POST в GET для внтутреннего редиректа и,
> >>>> кроме того, позволяет вместо
> >>>
> >>> Патч применил, теперь все работает.
> >>>
> >>>>      if ($request_method != "POST") {
> >>>>
> >>>> писать
> >>>>
> >>>>      limit_except  POST {
> >>>>          deny   all;
> >>>>      }
> >>>
> >>> Но deny вернет 403 клиенту, а 405 здесь будет более правильно, если не
> >>> память мне не изменяет, то Апач так и делает в аналогичной директиве.
> >>
> >> Можно так:
> >>
> >>        limit_except  POST {
> >>            deny   all;
> >>        }
> >>
> >>        error_page  403  =405  /error_page.html;
> >
> > Все равно не совсем корректно, тогда невозможно будет правильный статус
> > 403 послать. К тому же будет несколько лишних дисковых syscall на
> > обработку /error_page.html. При незагруженном процессоре и перегруженном
> > диске в какой-то момент это может стать критичным.
>
> Если этот error_page стоит только внтутри location, уходящего на fastcgi,
> то там других 403 появится не откуда.

Есть откуда, я шлю 403 когда юзеру или подсети действительно запрещен доступ.
А также и другие статусы при соотв. ситуациях. В логах потом гораздо проще 
анализировать что происходит. 

Кстати, насчет статусов. Заметил у nginx что если fastcgi отваливается по 
таймауту, то в логе $status пишется как 0. При этом юзеру сообщается 
правильный статус 504 (по помню точто, но Gateway Timeout сообщение там 
было). При анализе логов это будет очень мешать.

>
> А сисколов можно избежать так:
>
>         error_page  403  =  /405;
>
>         location = /405 {
>             return 405;
>         }
>
> limit_except работает немного быстрее, чем
> if ($request_method != "POST"), но разница не велика.

Хорошо, я попробую. Спасибо!



 




Copyright © Lexa Software, 1996-2009.