<p dir="ltr">OK I can use that method.<br>
I prefer it.</p>
<p dir="ltr">Thank you very much for this solution. I am very excited to learn a little bit of LUA to.</p>
<div class="gmail_quote">On Aug 31, 2012 2:15 PM, "agentzh" <<a href="mailto:agentzh@gmail.com">agentzh@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello!<br>
<br>
On Fri, Aug 31, 2012 at 9:12 AM, David | StyleFlare<br>
<<a href="mailto:david@styleflare.com">david@styleflare.com</a>> wrote:<br>
> Strangely<br>
><br>
> I still dont see the header variable set.<br>
><br>
> I installed nginx-lua and I added the snippet you sent me to the nginx<br>
> config.<br>
><br>
<br>
Sorry, ngx.location.capture disables nginx variable sharing between<br>
subrequests and their parent by default (for safety reasons). You need<br>
to explicitly allow that for your variable:<br>
<br>
    ngx.location.capture("/auth", { share_all_vars = true })<br>
<br>
See the official documentation of ngx_lua for more details:<br>
<br>
    <a href="http://wiki.nginx.org/HttpLuaModule#ngx.location.capture" target="_blank">http://wiki.nginx.org/HttpLuaModule#ngx.location.capture</a><br>
<br>
But it's highly recommended to use the response body and/or headers<br>
(instead of nginx variables) to return data from the subrequest back<br>
to its parent, for example:<br>
<br>
    location / {<br>
        access_by_lua '<br>
            local res = ngx.location.capture("/auth")<br>
            if res.status == 200 and res.body then<br>
                ngx.req.set_header("X-Server-ID", res.body)<br>
            end<br>
        ';<br>
<br>
        uwsgi_pass ...;<br>
    }<br>
<br>
    location = /auth {<br>
        internal;<br>
        postgres_query "select server_id from ...";<br>
        postgres_pass backend;<br>
        postgres_output  value 0 0;<br>
    }<br>
<br>
That is, we use the postgres_output directive instead of postgres_set<br>
in location /auth here so that the server ID data will be returned as<br>
the subrequest's response body.<br>
<br>
Best regards,<br>
-agentzh<br>
<br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a><br>
</blockquote></div>