auth_request_set into variable and lua

djczaski djczaski at
Wed Dec 5 03:36:39 UTC 2012

Thank you taking the time with your detailed response.  I have some
comments below.

On Tue, Dec 4, 2012 at 9:19 PM, agentzh <agentzh at> wrote:
> Hello!
> On Tue, Dec 4, 2012 at 2:18 PM, djczaski wrote:
>> Trying to get a header from an auth_request into a variable and use it from
>> Lua with no luck.  This was the simple example I tried.
> You're making several mistakes. See the discussion below:
>>       location = /auth {
>>            add_header    X-Boo    "Hello World";

This was an attempt to make a simple example.  The authentication
comes from a fastcgi process.

> Mistake #1: The add_header directive from the standard ngx_headers
> module has no effect on subrequests while your location /auth here is
> accessed by a subrequest issued via the auth_request directive.
>>            return 204;
>>         }
>>         location /test {
>>             auth_request /auth;
>>             auth_request_set $test $upstream_http_x_boo;
> Mistake #2: The $upstream_http_XXX variables are only meaningful when
> the *current* location is configured by one of those Nginx upstream
> modules like ngx_proxy, ngx_fastcgi, ngx_uwsgi, and etc. Here your
> current location, location /test, is not configured by any Nginx
> upstream modules (neither ngx_auth_request nor ngx_lua are upstream
> modules).

The fastcgi process from /auth sets some headers which I need to
forward into parameters for a second fastcgi processes.

> Mistake #3: The $upstream_http_XXX variables are only in effect for
> the current request. It won't inherit values from any other requests
> including subrequests.
>>             add_header X-BooHoo $test;
>>             content_by_lua '
>>                 ngx.say("(" .. ngx.var.test .. ")")
>>             ';
>>         }
> BTW, I'm not sure what business requirements you're trying to achieve
> here but I think you can just use access_by_lua with
> ngx.location.capture here in place of auth_request and you can inspect
> the subrequest's response headers easily in Lua.

I was looking at nginx as a replacement of another web server in order
to improve performance on an embedded platform.  Actually, I was able
to implement this through access_by_lua while I was having problems
and although it worked, performance was worse than using the fastcgi
authorizer on the other server.  To improve performance, I could write
a module and I looked at using auth_pam however the pam conversation
on each request is extremely slow.  It could be that all of this is
the wrong path.  The basic requirement is user login with pam

> Best regards,
> -agentzh
> _______________________________________________
> nginx mailing list
> nginx at

More information about the nginx mailing list