在 Haproxy 中为特定 URL 前缀返回特定的 /200 状态代码

在 Haproxy 中为特定 URL 前缀返回特定的 /200 状态代码

在 Nginx 中,我们可以像这样向 URL 前缀返回特定的状态代码。

location /api { return 200; }

我们如何在 Haproxy 中实现同样的功能?

通过了 Haproxy ACL 但找​​不到任何内容。

答案1

这可以通过使用 lua 响应脚本来实现。我已经使用了一个脚本来设置预检响应的 CORS 标头。

我的规则如下:

global
    ...
    lua-load /etc/haproxy/200.lua

frontend
    bind ...
    ...
    use_backend http_200 if ...

backend http_200
    http-request use-service lua.200-response

Lua 脚本/etc/haproxy/200.lua

# 200.lua
core.register_service("200-response", "http", function(applet)
    local response = ""
    applet:set_status(200)
    applet:add_header("Content-Length", "0")
    applet:start_response()
    applet:send(response)
end)

答案2

为了完整性,从 2.2 版开始,您可以返回这样的动态内容

http-request return status 200 content-type "text/plain" lf-string "Hello" 

更多文档

相关内容