你如何屏蔽HAProxy中的url?

有没有办法在HAProxy做URL掩码? 我想有一个URL指向我的负载平衡器,即www.example.com ,redirect到另一个URL我有另一个应用程序。 不过,我希望用户的浏览器仍然显示原始url( www.example.com )。 我将如何去做这件事?

你可以使用reqrep来做到这reqrep

 frontend FE bind 10.10.10.10:80 mode http acl is_domain.com hdr(host) -i domain.com use_backend BE:domain.com if is_domain.com backend BE:domain.com mode http reqrep ^([^\ ]*)\ (.*) \1\ /path/\2 server domain2.com:80 

但是,您应该将domain2.comparsing的IP放在server行中,以免出现怪异行为。

我们意识到,只要在发送到后端服务器时对后端进行redirect,我们就可以更轻松地做到这一点。 我不知道这是否理想,但完成了我们的目标。 代码如下:

前端http_in

  ... acl is_test1.domain.com hdr(host) -i test1.domain.com # Host & Domain only check. acl is_path_null path / # No path check use_backend domain.com.nopath if is_test1.domain.com is_path_null # If Host & Domain matches and path is null. use_backend domain.com.path if is_test1.domain.com !is_path_null # If Host & Domain matches and path is not null. 

前端https_in

  ... acl is_path_null path / # No path check use_backend domain.com.nopath if { ssl_fc_sni -i test1.domain.com } is_path_null # If Host & Domain matches and path is null. use_backend domain.com.path if { ssl_fc_sni -i test1.domain.com } !is_path_null # If Host & Domain matches and path is not null. 

后端domain.com.nopath

  ... server SERVER IP#:80 redir https://test1.domain.com/webapp check 

后端domain.com.path

  ... server SERVER IP#:80 check