Forum: NGINX Trouble with $uri in subrequest

2974d09ac2541e892966b762aad84943?d=identicon&s=25 ThomasLohner (Guest)
on 2013-07-17 22:52
(Received via mailing list)
Hi there,

i'm having trouble getting the request_uri via lua in a subrequest.

ngx.var.uri will always return the uri of the parent request whereas
something like ngx.req.get_uri_args will return the correct args for the
subrequest.

any ideas on how to get the subrequets uri? or am i missing something
here?

i'm using 1.4.1, thanks in advance

Thomas

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,240968,240968#msg-240968
37f3ea777f96500b332a1a89d6027897?d=identicon&s=25 Yichun Zhang (agentzh) (Guest)
on 2013-07-18 01:22
(Received via mailing list)
Hello!

On Wed, Jul 17, 2013 at 1:51 PM, ThomasLohner wrote:
> i'm having trouble getting the request_uri via lua in a subrequest.
>
> ngx.var.uri will always return the uri of the parent request whereas
> something like ngx.req.get_uri_args will return the correct args for the
> subrequest.
>
> any ideas on how to get the subrequets uri? or am i missing something here?
>

Could you please give a minimal example that can reproduce this issue?

Apparently, the following example works as expected on my side with
ngx_lua 0.8.4 + nginx 1.4.1 on Linux x86_64:

    location = /sub {
        internal;
        content_by_lua '
            ngx.say("sr uri: ", ngx.var.uri)
        ';
    }

    location = /main {
        echo_subrequest GET /sub;
    }

Accessing /main with curl yields

    $ curl localhost:1985/main
    sr uri: /sub

That is, ngx.var.uri evaluates to the URI of the subrequest, /sub, not
that of the parent request, /main.

Best regards,
-agentzh
2974d09ac2541e892966b762aad84943?d=identicon&s=25 ThomasLohner (Guest)
on 2013-07-18 10:40
(Received via mailing list)
oh my...

i was fooled by $request_uri which returns the parent uri. i understand
that
this is intended behavior.

sorry!

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,240968,240978#msg-240978
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.