gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 20:49:39 31 4
gpt4 key购买 nike

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

我尝试了以下代码,但失败并出现错误“此处不允许 content_by_lua_block 指令”。有什么解决办法吗?

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_block - content_by_lua_block 指令专门用于响应特定的位置,而 init_ 版本用于启动:

init_by_lua_block

syntax: init_by_lua_block { lua-script }

context: http

phase: loading-config

Similar to the init_by_lua directive except that this directive inlines the Lua source directly inside a pair of curly braces ({}) instead of in an NGINX string literal (which requires special character escaping).

For instance,

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

(来自 init_by_lua 部分,“当 Nginx 主进程(如果有)加载 Nginx 配置文件时,在全局 Lua VM 级别运行 Lua 代码 [...] .")

关于nginx - 如何在 NGINX 启动时调用 Lua 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42731857/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com