今天在工作遇到 这么一个需求: 根据访问方式强制对Host头内容进行修改!过程中有些问题记录下来
1:在haproxy 下新增一个frontend 时
默认都是用默认的backend
default_backend nginx
2:
在listen下增加
acl fromHttps hdr(X-Forwarded-Proto) -i https
reqidel ^Host:.* if fromHttps
reqadd Host:\ mine.sky.net:444 if fromHttps
在访问时判断如果是从https发起的访问时就把Host的header改写成mine.sky.net:444,如果是从http发起的访问时刚不作操作
3:
在做了2的操作后,第一次访问Host改成成功,但是如果接着刷新一下时,发现Host内容却没有更改了。
郁闷了好久后,最后在Haproxy.conf文件里的bind *
option httpclose
option forceclose
option http-server-close
后发现问题解决,可能是与同一seesion再次请求时,haproxy不再对其处理的原因吧!
阅读(3863) | 评论(0) | 转发(0) |