Lua脚本无法关闭Nginx,尽管已经定义了ngx.close()

我正在运行一个带有lua-nginx镜像的docker。

在我的Nginx配置文件中,我从server {}部分调用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
   --做一些事情
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。

点赞