Re: Глюки в named location

Maxim Dounin mdounin на mdounin.ru
Пт Июн 25 16:52:24 MSD 2010


Hello!

On Fri, Jun 25, 2010 at 07:17:16AM -0400, dagr wrote:

> Заметил такую вещь 
> 
> похоже в именованных location не
> срабатывают  
> 
> client_max_body_size 
> и error_page (или proxy_intercept_errors on ). 
> 
> Пока все идет через обычный location - все
> работает. 
> Но мне нужно в зависимости от
> переменной в урле  давать или не давать
> 
> спец текст вместо 413 ошибки , поэтому
> пришлось ввести еще именованный.
> Запросы раскидываются через эти 2 location 
> как надо, по логам вижу.
> 
> Вопрос - можно ли это как то обойти ?

Ошибка 413 случается на этапе поиска конфига, когда nginx выбирает 
подходящий location.  Переход в именованный location этот этап 
минует, и соотетственно другой лимит на body/error_page 413 не 
отработает.  Наверное это неправильно.

Что касается workaround'а, то в данном случае проще всего делать 
дифференциацию уже на этапе обработки error_page 413, т.е. как-то 
так:

    location / {
        error_page 413 /413.html;
        ...
    }

    location = /413.html {
        if (...no custom error...) {
            return 413;
        }
        # custom error is here, in /413.html
    }

Maxim Dounin



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