Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a reverse proxy that l want to log request body with which currently looks lie

log_format my_tracking '"$request" "$http_soapaction" "$http_content_type" "$request_body"';

which is logging everything wonderfully, now I want to log the response body of these requests its turning out to be a lot harder. I have been trying to use the Lua module (which I've compiled into Nginx 1.3.14) but I can't find any examples of how to do this, I'm definitely stretching my technical ability so any assistance would be greatly received.

Thanks, Will Edit Reply Quote Report

share|improve this question

Indeed, setting variable in body_filter and then passing it into log file doesn't work. I've checked this configuration and it worked but unfortunately nginx logs data into error.log:

 error_log  logs/error.log  info;

 location / {
      set $myresponse;  #we must declare it first, we cannot create vars in lua
      proxy_pass http://mybackendserver;
      body_filter_by_lua 'ngx.var.myresponse = ngx.arg[1]


ps. Would like to know too how to log to access logs from lua module.

share|improve this answer
Hi, This doesn't work, it works if instead of ngx.arg[1], we put a lua string, but it won't put the body into that var. – Reu May 8 '13 at 9:31
indeed, updated post, hope this one helps. – Andrei Mikhaltsov May 8 '13 at 14:26

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.