Welcome! Log In Create A New Profile

Advanced

Re: как удалить куку из request header?

Maxim Dounin
December 09, 2011 05:50AM
Hello!

On Fri, Dec 09, 2011 at 04:36:48AM -0500, vgoncharov wrote:

> Всем привет!
>
> Подскажите, как правильно удалить куку
> из заголовка запроса?
> При этом в заголовке кук несколько, а
> надо удалить только одну с именем
> jstree_open.
>
> Вот подробная причина, по которой это
> надо.
>
> Backend достаточно неповоротливый в
> настройках: Oracle XML DB Server
> Frontend: nginx
>
> Веб-приложение использует jstree для
> отображения иерархических данных.
> Состояние узлов дерева
> (открыто/закрыто) запоминается в куке
> jstree_open.
> При этом это приложение использует и
> другие куки.
>
> Каждая из кук нужна для правильной
> работы backend'а, однако кука jstree_open на
> бакэнде совергенно бесполезна. Прои
> этом на больших деревьях создается
> большая кука jstree_open. Backend при получении
> такой большой куки выдает 500 Internal Server
> Error.
>
> Предполагаемое решение: необходимо
> удалить одну (только одну) куку jstree_open
> из заголовка запроса перед передачей
> его на backend.
>
> Предполагаемое неправильное понимание
> вопроса: client_header_buffer_size и large_client_header_buffers
> не могут решить проблемы, так как
> проблема не в nginx, а в backend. Nginx же с
> имеющимися куками справляется
> (благодаря этим настройкам).
>
> Другое предполагаемое неправильное
> решение: Удаление заголовка запроса
> Cookie: не поможет, так как приложение
> требует наличия всех остальных кук
> (несколько штук).

Выкусывайте нужное из $http_cookie, а дальше

proxy_set_header Cookie "то что осталось";

Выкусить, наверное, даже получится с помощью модуля rewrite (if с
регулярым выражением + set). Как-то так:

set $rest $http_cookie;
if ($http_cookie ~ "^(.*[,; ])?jstree_open=[^,;]*(.*)$") {
set $rest "$1$2";
}

proxy_set_header Cookie $rest;

Completely untested, регулярное выражение скорее всего требует
доработки.

Maxim Dounin

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

как удалить куку из request header?

vgoncharov December 09, 2011 04:36AM

Re: как удалить куку из request header?

Maxim Dounin December 09, 2011 05:50AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 191
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