Overwriting a request cookie with a variable
mdounin at mdounin.ru
Fri Feb 5 21:00:18 MSK 2010
On Fri, Feb 05, 2010 at 04:15:31PM +0100, Markus Jelsma wrote:
> Hello list,
> I have managed to retrieve data from memcache in a variable using the eval
> module in Nginx but now i need that variable to be injected into the current
> HTTP request.
> An incoming HTTP request carries a cookie named token. I use that token to
> look up a value in memcache. Afterwards, i need to replace the original token
> cookie value with that new value i got from memcache before proxying the
> request to a backend.
> I have looked in the wiki and figured i need to write a variable, but writing
> to my cookie doesn't seem to work. Also, i have not seen any leads in the
> HttpCoreModule documentation on how to set/overwrite/manipulate a variable
> from the HTTP request.
You have to use
proxy_set_header Cookie $variable;
and carefully construct $variable from original $http_cookie
header and data you got from memcached. Refer to relevant specs
for Cookie header syntax, and use "if" with regexp matching and
"set" to do it.
If you have control over backend - I recommend you not to replace
it, but use some custom header instead, e.g.
proxy_set_header X-Memcached-Data $data;
More information about the nginx