Catch ALL requests by LUA-script
agentzh
agentzh at gmail.com
Tue Mar 1 11:38:55 MSK 2011
On Tue, Mar 1, 2011 at 3:34 PM, andiL <nginx-forum at nginx.us> wrote:
>
> What i would like to to:
> Is it possible to create a location-entry in the nginx.conf that ALL
> requests coming to the Server are handled by a LUA-script?
>
I've just allowed use of rewrite_by_lua_file (and its friends) at the
server and http block levels in ngx_lua's git master HEAD (
http://github.com/chaoslawful/lua-nginx-module ).
Here's a small example from the ngx_lua test suite:
server {
listen 1984;
server_name 'localhost';
location / {
root html;
index index.html index.htm;
}
access_by_lua 'ngx.header["X-Foo"] = "bar" ngx.send_headers()';
}
Then
curl -i localhost:1984/
gives
HTTP/1.1 200 OK
Server: nginx/0.8.54 (without pool)
Date: Tue, 01 Mar 2011 08:34:45 GMT
Content-Type: text/plain
Transfer-Encoding: chunked
Connection: keep-alive
X-Foo: bar
<html><head><title>It works!</title></head><body>It works!</body></html>
This is just for demonstration purposes, blindly sending headers
directly from within an access or rewrite handler is usually
considered bad practice ;)
> i.e. i have set the *.php and / locations to internal so only the lua
> script should have access to the files (it's responsible for the in- and
> output)
>
Well, you do not need an ad-hoc location for this. Use directive
inheritance instead.
>
> Background: I would like to have a LUA-script which handles every
> request and filters certain Headers, Parameters, etc.
>
Hopefully my solution given above works for you :)
Cheers,
-agentzh
More information about the nginx
mailing list