Спасибо за пояснение, исправил error_page в тестовом примере. error_page 404 = @ssi_err;
Результат не изменился, stub все равно срабатывает.
С уважением, Максим Анфилатов.
11 декабря 2012 г., 0:55 пользователь Maxim Dounin <mdounin@xxxxxxxxxx> написал:
Hello!
On Mon, Dec 10, 2012 at 09:52:05PM +0400, Maksim Anfilatov wrote:
> Добрый вечер.
>
> Пример из нашей жизни
>
> location /ssi_inc/ {
> memcache_pass ....
> [получаем из memcache]
> error_page 404 @ssi_backend;
> # если нет в memcache пробуем получить с бекенда
> }
>
> location @ssi_backend {
> proxy_pass ....
> [обращаемся на backend]
> }
>
> В данном случае логичным казалось бы поведение - вставлять stub, если
> произошла ошибка, не указанная в error_page для ssi_inc, либо любая ошибка
> при обращении на backend.
А оно вам надо - чтобы nginx догадывался, что вы хотите считать
ошибкой (и соответственно использовать stub), а что - нет?
Укажите явно, что в случае 404 следует обращаться на бекенд, и
ответ трактовать не как тело 404 ошибки, и как полноценный ответ.
И будет счастье. Для этого всего лишь надо добавить "=" в
директиву error_page, т.е. вместо