尽管定义了 ngx.close(),Lua 脚本仍未关闭 Nginx

尽管定义了 ngx.close(),Lua 脚本仍未关闭 Nginx

我正在运行带有 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。

相关内容