Http haproxy重写uri保留后端头主机

Http haproxy重写uri保留后端头主机,http,url-rewriting,header,haproxy,host,Http,Url Rewriting,Header,Haproxy,Host,通过在Haproxy 1.8中进行重写,我需要将URI重定向到另一个域(主机),但将头主机保留在请求中 例如: www.mysite.com/api->104.4.4.4/api(rw)->结果www.mysite.com/api(响应) 我用HA的一些参数做了很多测试,我设法获得了一些成功,但有一个问题 这是我真正的斯涅纳里奥 backend site1 acl path_to_rw url_beg /api acl mysite hdr(host) -i www.mymainsite.com

通过在Haproxy 1.8中进行重写,我需要将URI重定向到另一个域(主机),但将头主机保留在请求中

例如:

www.mysite.com/api->104.4.4.4/api(rw)->结果www.mysite.com/api(响应)

我用HA的一些参数做了很多测试,我设法获得了一些成功,但有一个问题

这是我真正的斯涅纳里奥

backend site1
acl path_to_rw url_beg /api
acl mysite hdr(host) -i www.mymainsite.com

http-request set-header Host www.mymainsite.com if mysite path_to_rw
reqirep ^Host Host:\ host_to_forward/api if mysite path_to_rw
cookie SERVERID insert indirect nocache maxlife 1h
server site1 myhost:80 check cookie site1
我的后端是一个IIS服务器,我的重写工作正常。但是,我得到的错误如下:

“HTTP错误400。请求主机名无效”


我的后端似乎不接受我发送的headerhost。有人已经有这个问题了吗?

我通过acl和“使用后端”指令之间的简单组合,成功地解决了这个问题

e、 g:

头主机: www.mysite.com

在另一个起源中应用的路径 /原料药

acl myhost hdr(host) -i www.myhost.com
acl path_api url_reg -i  /API(.*)
use_backend be_origin_servers if myhost path_api

backend be_origin_servers
server myserver1 10.10.10.10 check cookie myserver1