我正在使用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';
}
- 如何在nginx内部创buildasynchronous的“cron like”调度程序
- os.execute是否阻塞lua中的线程?
- 与nginx一起使用lua时出错
- 如何使用nginx做用户级访问控制
- nginx lua处理表单数据
content_by_lua_block { local rabbitmq = require 'src/rabbitmq.lua'; rabbitmq.createExchange("nginx", "topic"); }
}
您可能需要init_by_lua_block
– content_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代码” )。