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"), но разница не велика.
Хорошо, я попробую. Спасибо!
|