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

Aug*_*tin 5 linux haproxy

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

location /api { return 200; }

我们怎样才能在 Haproxy 中实现同样的效果呢?

浏览了 Haproxy ACL 但找​​不到任何内容。

小智 3

这可以通过使用 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

Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)