nginx-0.8.31

Igor Sysoev igor на sysoev.ru
Ср Дек 23 20:16:49 MSK 2009


On Wed, Dec 23, 2009 at 06:52:54PM +0300, Igor Sysoev wrote:

>     *) Добавление: теперь директива error_page может перенаправлять ответы 
>        со статусом 301 и 302.

Возможные сценарии использования:

1) меняем тело проксированного ответа:

    location / {
        ...
        proxy_intercept_errors  on;
        error_page  301 302 /redirect.html;
    }

    location = /redirect.html {
        internal;
        add_header  Location    $upstream_http_location;
        add_header  Set-Cookie  $upstream_http_set_cookie;
    }

2) добавляем ссылку в тело обычных редиректов:

    location / {
        ...
        error_page  301 302 /redirect.html;
    }

    location = /redirect.html {
        internal;
        ssi  on;
    }

    /redirect.html:

    <html>
    ...
    <a href="<!--# echo var="sent_http_location" -->"
            ><!--# echo var="sent_http_location" --></a>
    ...
    </html>

3) обработка редиректов в image filter:

    location / {
        ...
        image_filter  ...
        proxy_intercept_errors  on;
        error_page  301 302 = @redirect;
    }

    location @redirect {
        image_filter  ...
        set  $redirect   $upstream_http_location;
        proxy_pass  $redirect;
   }


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



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