memcached status

Konstantin Svist fry.kun на gmail.com
Чт Дек 3 09:20:48 MSK 2009


On 12/02/2009 08:45 PM, Domrachev Ivan wrote:
> обработка ответов бэкенда на фронтенде
> domrachevivan
> May 27th, 9:05
> иногда очень хочется на фронтенде что то поправить в запросах к
> бэкенду, а также поменять ответ от бэкенда. рецепт как делать
> манипуляции с хиадерами:
>
> фронтенд - nginx. бэкенд в примере fastcgi, но может быть и любой
> другой. сути это не меняет.
> задача: от пользователя приходит кукис. кукис надо преобразовать и
> отдать бэкенду. от бэкенда приходит ответ, в нём есть хиадер который
> надо преобразовать и отдать пользователю.
>
> frontend nginx.conf:
> ...
> perl_modules perl;
> perl_require cookies.pm;
> perl_set $header cookies::parse_cookie;
> perl_set $cookie cookies::generate_cookie;
> ....
> location / {
>   fastcgi_param header_name $header;
>   fastcgi_hide_header header_name;
>   add_header Set-Cookie $cookie;
> }
> ....
> cookies.pm:
>
> sub parse_cookie {
> ...
> return "parse_result";
> }
>
> sub generate_cookie {
> my $r=shift;
> my $header=$r->variable("upstream_http_header_name");
> ...
> return "name=value; expire=...";
> }
>
> как это работает:
> пользователь отправляет запрос с установленным кукисом.
> nginx его ловит и перед отправкой на бэкенд выполняет fastcgi_param
> header_name $header. это вызывает функцию parse_cookie которая
> разрезает параметры, производит необходимые манипуляции и возвращает
> необходимое бэкенду значение. nginx его передаёт в указанном параметре
> header_name.
> бэкенд обработав запрос, если надо, выставляет в ответе хиадер
> header_name.
> когда бэкенд отдаст ответ, то nginx перед отправкой пользователю
> выполняет add_header Set-Cookie $cookie, что вызывает функцию
> generate_cookie.
> в ней мы можем получить доступ к хиадерам, что отдал бэкенд:
> $r->variable("upstream_http_header_name"). обработать их и вернуть
> некий результат,
> который будет выставлен в ответе пользователю в хиадере Set-Cookie.
> не забываем сделать fastcgi_hide_header, что бы пользователю не уходил
> наш спец. хиадер.
>
>    

Всё это хорошо, но клиенты у меня тупые - кто их знает если они cookie 
поддерживают. Да и с перлом не хочется возиться.




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