не работает error_page 503 /503.html;

Igor Sysoev is at rambler-co.ru
Fri Mar 20 15:09:30 MSK 2009


On Fri, Mar 20, 2009 at 01:38:32PM +0300, Maxim Dounin wrote:

> Hello!
> 
> On Fri, Mar 20, 2009 at 12:42:47AM +0200, Андрей Василишин wrote:
> 
> > Maxim Dounin пишет:
> >> Hello!
> >>
> >> On Thu, Mar 19, 2009 at 04:40:39PM +0200, Андрей Василишин wrote:
> >>
> >>   
> >>>> Как сделать так, чтобы при превышении limit_conn one  1; клиенту   
> >>>> отдавалась /503.html, сейчас я так понял отдается 404 (Firefox не   
> >>>> может найти файл)?
> >>>>       
> >>> Игорь, все-таки можно что-нибудь придумать или нет?
> >>>     
> >>
> >> Пропробуйте 
> >>
> >>     location /503.html {
> >>         add_header Content-Disposition "";
> >>         ...
> >>     }
> >>
> >> Это должно убрать из ответа заголовок Content-Disposition, который  
> >> прилетает из скрипта отдающего X-Accel-Redirect, и судя по всему 
> >> вызывает подобную реакцию FireFox'а.
> >>
> >> Maxim Dounin
> >>   
> > *syntax: *add_header */название значение/*
> > *default: *нет
> > *context: *http, server, location
> >
> > Директива добавляет строку в заголовке ответа при условии, что код  
> > ответа равен 200, 204, 301, 302 или 304. В значении можно использовать  
> > переменные.
> >
> >
> > Тут ответ ведь 503
> 
> Да, я ошибся.  Кроме того, значение Content-Disposition 
> вышеуказанная конструкция не очистит даже если сработает - 
> add_header умеет чистить только Cache-Control и Last-Modified.
> 
> Workaround - попробовать возвращать Content-Disposition в другом 
> заголовке, и добавлять через add_header если всё хорошо.  Как-то 
> так:
> 
>     location /files/ {
>         internal;
>         add_header Content-Disposition $upstream_http_x_content_disposition;
>         ...
>     }
> 
> Но вообще наверное надо с этим что-то сделать кардинально.

Я думаю, нужно чистить Content-Disposition прямо в
ngx_http_special_response_handler()


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list