Hello! On Tue, May 6, 2014 at 11:30 PM, kay wrote: > Sure, you can use nginx.conf from my previous message and this server > config: >
I've noticed 2 obvious mistakes in your config. See blow. > server { > listen 80; > > rewrite_by_lua ' > local res = ngx.location.capture("/memc?cmd=get&key=test") > ngx.say(res.body) > '; > 1. It is not recommended to use the rewrite_by_lua directive directly in the server {} block. Because this rewrite_by_lua directive will just get inherited by every location in that server {} block by default, including 1) your location /memc, which will create a subrequest loop because you initiate a subrequest in your rewrite_by_lua code to /memc, and 2) your error pages like /error.html. And I'm sure this is not what you want. 2. If you generate a response in rewrite_by_lua by calls like "ngx.say()", then you should really terminate the current request immediately, via "ngx.exit(200)" or something like that, otherwise nginx will continue to run later phases like the "content phase" (which is supposed to generate a response) and you will face duplicate responses for the same request. Another suggestion is to check out your nginx error logs for hints (if any). If the existing info is not enough, you can further enable nginx's debugging logs: http://nginx.org/en/docs/debugging_log.html Finally, ensure your version of ngx_lua, ngx_memc, and the nginx core are recent enough. Good luck! -agentzh _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx