不同路径的 Marathon-lb 规则
Marathon-lb rules for different paths
我的 marathon-lb 配置:
"labels": {
"HAPROXY_GROUP": "external",
"HAPROXY_0_VHOST": "test.com",
"HAPROXY_0_MODE": "http"
}
我希望它仅将 test.com/12345
之类的请求路由到内部端点
/results?q=123
。如何实现?
P.S。用于相同目的的 Nginx 规则如下所示:
location ~* /[\w\-]+?$ {
proxy_pass http://127.0.0.1:8094;
rewrite ^/([\w\-]+?)$ //results?q=? break;
}
您可能知道 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",
注意缩进的双空格。并不是说你必须玩转义才能让它发挥作用。
我的 marathon-lb 配置:
"labels": {
"HAPROXY_GROUP": "external",
"HAPROXY_0_VHOST": "test.com",
"HAPROXY_0_MODE": "http"
}
我希望它仅将 test.com/12345
之类的请求路由到内部端点
/results?q=123
。如何实现?
P.S。用于相同目的的 Nginx 规则如下所示:
location ~* /[\w\-]+?$ {
proxy_pass http://127.0.0.1:8094;
rewrite ^/([\w\-]+?)$ //results?q=? break;
}
您可能知道 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",
注意缩进的双空格。并不是说你必须玩转义才能让它发挥作用。