как сделать uri перенаправления в haproxy?

#redirect #haproxy

Вопрос:

Я использую Haproxy версии 2.4

Мне нужно перенаправить URL https

Я сделал это в nginx, но мне это нужно в haproxy

 https://1.1.1.1/partner/transparent => https://2.2.2.2/my.FrontEnd.ServiceProvider2/partner/transparent

https://1.1.1.1/status => https://2.2.2.2/my.FrontEnd.ServiceProvider2/status
 

Параметры тоже должны быть переданы

Пример

 https://1.1.1.1/partner/transparent?partner_id=1111amp;service_id=1111amp;order_id=111111111amp;amount=10amp;phonenumber=111111111amp;signature=ZyVvUoM7GpzW44HXbi2DG+UHNCk=amp;way=mobile
 

запрос

 https://2.2.2.2/my.FrontEnd.ServiceProvider2/partner/transparent?partner_id=1111amp;service_id=1111amp;order_id=111111111amp;amount=12amp;phonenumber=111111111amp;signature=ZyVvUoM7GvzW44HXbi2DG+UHNCk=amp;way=mobile
 

как мне сделать перенаправление?

Я перепробовал множество вариантов, но у меня ничего не вышло

 frontend IN
bind *:443 ssl crt /etc/haproxy/ssl/cert.pem
mode http
option httplog

acl host_status path_beg /status

http-request redirect code 301 prefix https://2.2.2.2 if { path_beg /status }
#location /my.FrontEnd.ServiceProvider2/status if { path_beg /status }
#http-request redirect code 301 location http://%[hdr(host)] unless host_status
#http-request set-path %[url,regsub(^/status,/https://2.2.2.2/my.FrontEnd.ServiceProvider/status,)] if { path_beg /status }
#replace-header ^(.*)$ /my.FrontEnd.ServiceProvider2/status
#####
#http-request redirect prefix https://2.2.2.2/partner/transparent code 301 if { hdr(host) -i host_partner }
#http-request redirect code 301 prefix /status if host_status
#
#http-request redirect code 301 prefix https://1.1.1.1/partner/transparent if host_partner acl     host_partner path_beg /partner/transparent
http-request redirect code 301 prefix https://2.2.2.2/my.FrontEnd.ServiceProvider2 if host_partner
#location /my.FrontEnd.ServiceProvider2/partner/transparent if host_partner

use_backend status if host_status
use_backend partner if host_partner


#===========================backend======================#

backend status

mode http
#reqrep ^(.*)$
#option forwardfor
http-request redirect location https://2.2.2.2/my.FrontEnd.ServiceProvider2/status
#http-request redirect code 301 location http://%[hdr(host)]%[url,regsub(^/status,    /my.FrontEnd.ServiceProvider2/status,)] if { path_beg /status }
#http-request replace-value Location ^https://1.1.1.1/status(.*)$ https://2.2.2.2/my.FrontEnd.ServiceProvider2/status1
#server status 2.2.2.2:443
backend partner
mode http
#option forwardfor
http-request redirect location https://2.2.2.2/my.FrontEnd.ServiceProvider2/partner/transparent
 

Комментарии:

1. это работает, но параметры не передаются как передать параметры? reqrep ^/partner/(.*)$ 3 if host_partner use_backend partner if host_partner backend partner mode http http-request redirect location https://2.2.2.2/my.FrontEnd.ServiceProvider2/partner/transparent

2. это сработало для меня acl host_status path_beg /status http-request redirect code 301 location %[url,regsub(^/status,https://2.2.2.2/my.FrontEnd.ServiceProvider2/status,)] if { path_beg /status }