【问题标题】:Marathon-lb rules for different paths不同路径的 Marathon-lb 规则
【发布时间】:2017-08-03 16:58:29
【问题描述】:

我的 marathon-lb 配置:

"labels": {
    "HAPROXY_GROUP": "external",
    "HAPROXY_0_VHOST": "test.com",
    "HAPROXY_0_MODE": "http"
  }

我希望它只将test.com/12345 之类的请求路由到内部端点 /results?q=123。如何实现?

附:用于相同目的的 Nginx 规则如下所示:

location ~* /[\w\-]+?$ {
         proxy_pass http://127.0.0.1:8094;
         rewrite ^/([\w\-]+?)$ //results?q=$1? break;
    }

【问题讨论】:

    标签: haproxy marathon dcos


    【解决方案1】:

    您可能知道 marathon-lb 是 HAProxy 加上一些包装器。您可以使用 HAPROXY_0_BACKEND_HTTP_OPTIONS 标签将重定向添加到HAProxy configuration。有一个遗留的 reqrep 语句,您可能会觉得很方便,您也可以进行 301 重定向。例如你可以这样做:

    "HAPROXY_0_BACKEND_HTTP_OPTIONS": " reqrep ^/([\w\-]+?)$ /results?q=\\1 \n",

    "HAPROXY_0_BACKEND_HTTP_OPTIONS": " acl is_foo path -i /foo \n redirect code 301 location /bar if is_foo\n",

    注意缩进的双空格。并不是说您必须玩转义才能使其发挥作用。

    【讨论】:

    • 一晚上似乎无法配置/学习 haproxy/acl 语法,所以我设置了额外的 nginx 路由器。
    猜你喜欢
    • 2019-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    • 2017-10-16
    相关资源
    最近更新 更多