Сам отвечу на свой вопрос, может кому пригодится.

Т.к. Lua весьма беден на функции, которые необходимы в этом деле, то можно 
использовать математические и строковые функции + API самого nginx. В итоге 
выходит что то вроде:

server {

  listen 80;

  userid on;

  location / {
    proxy_pass http://172.17.42.1:9292;
    proxy_set_header X-Uid-Got $uid_got;
    proxy_set_header X-Uid-Set $uid_set;

    set $user_cookie $http_cookie;

    if ($uid_set) {
      set_by_lua $user_cookie '
        function encode_cookie(cookie)
          local binary_string = ""
          for i=5,35,8 do
            local chunk = tonumber(string.sub(cookie, i, i+7), 16)

              for j=1,4 do
                binary_string = binary_string .. string.char(chunk % 256)
                chunk = math.floor(chunk / 256)
              end
          end

          return ngx.encode_base64(binary_string)
        end

        if ngx.var.http_cookie == nil then
          return encode_cookie(ngx.var.uid_set)
        else
          return ngx.var.http_cookie .. ";" .. encode_cookie(ngx.var.uid_set)
        end
        ';
    }

    proxy_set_header Cookie $user_cookie;
  }

}

11.03.2015, 19:48, "Den Bozhok" <[email protected]>:
> Доброго дня!
>
> Возник вопрос, можно ли внутри nginx, имея значение $uid_set получить ее 
> представление в Base64, каким его видит бразуер получая заголовок Set-Cookie?
>
> Есть необходимость передавать этот uid при проксировании первого запроса 
> пользователя, когда еще никакой куки у пользователя нету.
> Пробовал с помощью lua модуля, но так ничего и не вышло :/
>
> Благодарю!
> ,
>
> _______________________________________________
> nginx-ru mailing list
> [email protected]
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

_______________________________________________
nginx-ru mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить