Variable variables?

Hi,

Nginx provides the value of the cookie “foo” in $cookie_foo . Is it
possible to read “foo” from the URL? In PHP you would use two dollar
signs for this kind of indirection.

Drupal sets the name of session cookie based on the cookie domain. I
am running SSI (reading from Redis via Webdis) and I would like to
read some user specific information which is stored in a Redis hash
named after the sesion name with a key of the value of the session
cookie. So the SSI command would be something include
virtual="/user/SESSnameofthesession". So I need to rewrite that into
something like
/redis/SESSnameofthesession/${COOKIE_$SESSnameofthesession}.

Thanks

Karoly N.

Ps. Sorry if i sent two copies of this.

On Mon, Jan 2, 2012 at 11:40 PM, Karoly N. [email protected]
wrote:

Hi,

Nginx provides the value of the cookie “foo” in $cookie_foo . Is it
possible to read “foo” from the URL? In PHP you would use two dollar
signs for this kind of indirection.

Well, it is trivial with ngx_lua’s set_by_lua config directive:

location /blah {
    set_by_lua $arg_value
        'local arg_name = ngx.var.cookie_foo
         return ngx.var["arg_" .. arg_name]';

    # reference $arg_value in later phase config directives here...
}

See the documentation for details:

http://wiki.nginx.org/HttpLuaModule#set_by_lua

Regards,
-agentzh

On Mon, Jan 2, 2012 at 11:40 PM, Karoly N. [email protected]
wrote:

Drupal sets the name of session cookie based on the cookie domain. I
am running SSI (reading from Redis via Webdis) and I would like to
read some user specific information which is stored in a Redis hash
named after the sesion name with a key of the value of the session
cookie. So the SSI command would be something include
virtual="/user/SESSnameofthesession". So I need to rewrite that into
something like /redis/SESSnameofthesession/${COOKIE_$SESSnameofthesession}.

I think you may consider replacing webdis with ngx_redis2:
http://wiki.nginx.org/HttpRedis2Module

Also, you may consider replacing SSI with content_by_lua because the
latter provides a full-fledged scripting language as well as the same
nonblocking network I/O capabilities (with ngx_redis2, among other
things).

Regards,
-agentzh

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs