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

DTe*_*est 5 haproxy

当您访问mydomain.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
Run Code Online (Sandbox Code Playgroud)

现在,我不想重定向到根域,而是想去掉 /dev 路径。所以如果我去mydomain.com/foo/dev它会设置cookie并重定向到mydomain.com/foo

这可以通过 HAProxy 实现,还是我需要在 apache 后端服务器中使用 mod_rewrite?

注意:我不需要 mod_rewrite 规则,只是在 HAproxy 中寻找这是否可行。

小智 6

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

reqrep ^([^\ ]*)\ (.*)/dev \1\ /\2 if acl_dev
Run Code Online (Sandbox Code Playgroud)


Kha*_*led 3

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

然而,haproxy 文档指出,不鼓励这样做,无论在客户端和真实服务器之间运行或不运行 haproxy,您的设置都应该可以工作(无需重新配置)。遵循这个建议,最好使用 apache mod_rewrite。