我正在运行带有 lua-nginx 映像的 docker。
在我的 Nginx conf 文件中,我从服务器 { } 部分调用 lua 脚本:
server {
listen 80;
server_name _;
location /payload {
content_by_lua_file /etc/nginx/handler.lua;
proxy_pass <myUrl>;
}
}
我遇到一个问题,无论如何,handler.lua 脚本结束后,它都会直接进入 proxy_pass。即使 lua 脚本说 ngx.close 也是如此!
if method == "POST" then
--do some stuff
else
ngx.log(ngx.ERR, "wrong event request method: ", ngx.req.get_method())
return ngx.exit (ngx.HTTP_NOT_ACCEPTABLE)
end
因此,当我执行 GET 请求时,在“return ngx.exit”之后,nginx.config 将继续执行到 proxy_pass。
这使得我的 lua 代码毫无意义。我只想在方法是 POST 时才有 proxy_pass。