Welcome! Log In Create A New Profile

Advanced

Re: Проксирование Cookie как в Apache ProxyPassReverseCookie

Maxim Dounin
April 17, 2011 02:34PM
Hello!

On Sun, Apr 17, 2011 at 12:32:21PM -0400, Begetan wrote:

> Уважаемые, хочу понять может ли Nginx
> выполнять проксирование Cookie наподобие
> директив Apache
> ProxyPassReverseCookieDomain или ProxyPassReverseCookiePath
>
>
> Подобная задача возникает при работе с
> сессиям, например от backend.org приходит
> ответ
> Set-Cookie JSESSIONID=xxx; domain=.backend.com; path=/
>
> А нужно сделать чтобы было так:
> Set-Cookie JSESSIONID=xxx; domain=.frontend.com; path=/
>
> В запросе соответственно выполняется
> обратная замена

В запросе ничего заменять не надо - там ни пути, ни домена не
присутствует.

> С заголовками запроса все просто, есть
> $cookie_, есть $http_cookie
>
> if ($http_cookie ~* "JSESSIONID=(.*)(domain=.frontend.com;)(.*)") {
> set $mycookie "JSESSIONID=$1 domain=.backend.com; $3";
> }
> Затем proxy_set_header Cookie $mycookie;
>
> Конфигурацию не проверял, но
> принципиально должно работать.
>
> А вот с заголовками ответа - непонятно.
> Есть директива
> add_header Set-Cookie $bla;
>
> Она работает. Проблема в том как
> извлечь исходную куку из заголовков
> ответа. Читал описание встроенных
> переменных и нужной не нашел.
>
> Вопрос 1. Доступны ли переменные с
> заголовками ответов, а именно Set-Cookie?

Заголовок ответа бекенда можно достать через переменную
$upstream_http_<header>, в данном случае -
$upstream_http_set_cookie.

Нюанс 1: сделать с ним можно что-то разве что через встроенный
перл (perl_set), ибо все if'и уже давно отработали.

Нюанс 2: если заголовков много - будет доступен только первый из
них.

> Вопрос 2. Можно ли каким то то способом
> реализовать проксирование Cookie в nginx?
> Вопрос 3. Не планируется ли аналог
> директив Apache ProxyPassReverseCookie?
>
> Я видел, что большинство вопрошающих в
> рассылку либо не могли сформулировать
> понятно вопрос, либо решили проблему с
> установкой нужной Cookie на стороне backend.
> Тем не менее, иногда существует
> необходимость сделать замену на frontend.
> Хочется услышать мнение разработчиков.
> Заранее благодарю!

IMHO - надо бы сделать. Но пока не до того.

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Проксирование Cookie как в Apache ProxyPassReverseCookie

Begetan April 17, 2011 01:28AM

Re: Проксирование Cookie как в Apache ProxyPassReverseCookie

Maxim Dounin April 17, 2011 02:34PM

Re: Проксирование Cookie как в Apache ProxyPassReverseCookie

Begetan April 18, 2011 06:36AM

Re: Проксирование Cookie как в Apache ProxyPassReverseCookie

Maxim Dounin April 18, 2011 06:52AM

Re: Проксирование Cookie как в Apache ProxyPassReverseCookie

Begetan October 15, 2011 07:33PM

Re: Проксирование Cookie как в Apache ProxyPassReverseCookie

Mikhail Mazursky October 16, 2011 11:40PM

Re: Проксирование Cookie как в Apache ProxyPassReverseCookie

Begetan October 17, 2011 06:05PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 168
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready