2017-09-05 103 views
0

我是新来HAProxy的整合 我想呼吁每个HTTP请求HAProxy的LUA支持:想打电话从Lua core.action方法文件

test_world.lua文件代码

core.register_action("test_world", { "tcp-req", "http-req" },function(txn) 
    txn:Info("Hello world") 
end) 

行动haproxy.cfg文件代码

global 
lua-load /usr/local/etc/haproxy/test_world.lua 


defaults 
    mode http 

frontend http 
    bind 0.0.0.0:80 
    mode http 
    http-request lua.test_world 

我正在从浏览器和Telnet请求为好,但没有得到回应

回答

0

您正在使用错误的“hello world”示例。 在您的示例中,您正在将一个Lua函数注册为action
注册为动作的函数更常用于操纵http请求并且不发送http响应。

如果您需要发送一个响应,而不是后端服务器,您需要使用applet一样显示在下面的例子:

core.register_service("hello-world", "http", function(applet) 
local response = "Hello World !" 
applet:set_status(200) 
applet:add_header("content-length", string.len(response)) 
applet:add_header("content-type", "text/plain") 
applet:start_response() 
applet:send(response) 
end) 
+0

是的,我要处理的请求,并传递给后端服务器,只是为了显示我正在打印的信息。 –

+0

如果您希望将消息显示为应答而不是真实服务器,则必须使用小应用程序,而不是使用其他方法。 – MoEmEn