ПРОЕКТЫ 


  АРХИВ 


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: не работае т error_page 503 /503.html;



Hello!

On Fri, Mar 20, 2009 at 03:09:30PM +0300, Igor Sysoev wrote:

> 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()

Вероятно.  Я даже почти уверен что это ничего не сломает.

Не совсем понятно что делать с другими заголовками в подобной 
ситуации.  В частности, из upstream'а сейчас могут прилететь при 
X-Accel-Redirect:

Content-Type
Set-Cookie
Content-Disposition
Cache-Control
Expires
Accept-Ranges

Из них сейчас чистится/переставляются Content-Type и 
Accept-Ranges.  Помимо Content-Disposition остаются ещё 
Set-Cookie, Cache-Control, Expires.  И что-то мне подсказывает что 
как минимум с последними двумя можно получить неприятностей.

Maxim Dounin



 




Copyright © Lexa Software, 1996-2009.