是否可以在重定向中删除 HAProxy 中部分路径?

是否可以在重定向中删除 HAProxy 中部分路径?

我使用 HAProxy 在您访问时设置 cookiemydomain.com/dev并重定向到mydomain.com

这样做的目的是提供一种访问网站开发版本而不是生产版本的方法,同时保持其他所有内容不变。

相关配置行如下所示:

frontend webfarm 1.2.3.4:80
    acl acl_dev path_end /dev

    redirect location / code 302 set-cookie SERVERID=live03 if acl_dev

    default_backend default_farm

现在,我不再重定向到根域,而是想删除 /dev 路径。因此,如果我转到根域,它将mydomain.com/foo/dev设置 cookie 并重定向到mydomain.com/foo

使用 HAProxy 可以实现这一点吗,或者我需要在 apache 后端服务器中使用 mod_rewrite?

笔记:我不需要 mod_rewrite 规则,只是寻找在 HAproxy 中是否可以实现这一点。

答案1

您可以执行 URL 重写和 HTTP 标头操作(添加、修改和删除标头)。

但是,haproxy 文档指出不鼓励这样做,并且您的设置应该可以在客户端和真实服务器之间运行或不运行 haproxy 的情况下工作(无需重新配置)。根据此建议,最好使用 apache mod_rewrite。

答案2

您可以使用“reqrep”或“reqirep”命令执行此操作:

reqrep ^([^\ ]*)\ (.*)/dev \1\ /\2 if acl_dev

相关内容