如何在NGINX启动时调用Lua方法?

我正在使用Lua和NGINX。 我的代码有一个名为“rabbitmq.createExchange”的lua方法。 我想在nginx服务器启动的时候调用这个方法。

我试过下面的代码,但我失败了,因为“content_by_lua_block指令在这里是不允许的”。 任何解决scheme

http {

lua_package_path '/app/nginx/src/?.lua;;'; server { listen 4000; include 'src/proj1.conf'; 

}

 content_by_lua_block { local rabbitmq = require 'src/rabbitmq.lua'; rabbitmq.createExchange("nginx", "topic"); } 

}

您可能需要init_by_lua_blockcontent_by_lua_block指令专门用于响应特定location ,而init_版本用于启动:

init_by_lua_block

语法: init_by_lua_block {lua-script}

上下文: http

阶段: 加载配置

init_by_lua指令类似,不同之init_by_lua于此指令直接在一对花括号( {} )内部内联Lua源,而不是在NGINX字符串文本(需要特殊字符转义)中内联。

例如,

  init_by_lua_block { print("I need no extra escaping here, for example: \r\nblah") } 

(来自init_by_lua部分, “当Nginx主进程(如果有的话)加载Nginx配置文件时,在全局Lua虚拟机级别运行Lua代码” )。