zz775520666 发表于 2019-1-2 07:59:43

Haproxy隐藏后端服务器信息、实现压缩、手机端跳转

  1.隐藏后端服务器版本

  在日常工作中我们都会使用haproxy作为负载均衡器,因为后端应用服务器多更改麻烦,因此决定在负载均衡器实现。

  只需要再frondend或listen或backend,添加
      rspidel ^Server:.*
      rspidel ^X-Forwarded-For:.*
      rspidel ^X-Powered-By:.*
      rspidel ^Via:.*
      rspidel ^X-AspNet-Version:*  以上使用可参考rspidel.
  另外如果需要迷惑一些人可根据需要添加响应头部,则可以使用rspadd.
      rspadd Server:\ AWS  

  2.Haproxy添加压缩功能(适用于Haproxy 1.5以上版本,1.4及以下版本不支持)
  在global中添加
      tune.comp.maxlevel 9   #压缩级别
      maxcompcpuusage 50   #压缩最大可使用CPU资源为50%  在defaults中添加
      compression algo gzip    #压缩算法
      compression type text/html text/plain application/x-javascript text/css application/xml #压缩文件类型
      compression offload    #使用本地压缩方式  

  3.根据浏览器进行跳转
  用户通过手机访问网站,自动跳转到手机站
acl mobile_agent hdr_sub(User-Agent) -i iphone android mobile ipad ipod   #定义规则客户端标识中有iphone、android、mobile中
acl mobile_site hdr_dom(host) -iwww.abc123.com#定义访问的主机
acl redirect_path url_reg -i ^/p/(1|2|3|4|5|6|7|8|9) ^/$ ^/index.   #定义路径,这里的/p/数字开头的,以及/的和/index开头的
acl www_path url_reg -i source=mobile#排除具有source=mobile标识,可用于某些用户通过手机端访问电脑版
redirect prefix http://m.abc123.com drop-query if mobile_agent mobile_site redirect_path ! www_path  当然也可以根据写入cookie的方式:(推荐)
acl mobile_agent hdr_sub(User-Agent) -i iphone android mobile ipad ipod   #定义规则客户端标识中有iphone、android、mobile中
acl mobile_site hdr_dom(host) -iwww.abc123.com#定义访问的主机
acl redirect_path url_reg -i ^/p/(1|2|3|4|5|6|7|8|9) ^/$ ^/index.   #定义路径,这里的/p/数字开头的,以及/的和/index开头的
acl site_tag hdr_sub(cookie) PC=1#通过写入cookie的方式进行排除,只需要加入PC=1(可自定义)这个cookie
redirect prefix http://m.abc123.com drop-query if mobile_agent mobile_site redirect_path ! site_tag  其中前4条都是定义规则,只有第5条才生效的,写法
  redirect prefix 替换的路径 drop-query if 规则一 规则二 规则三 !规则四
  注意感叹号就是非的意思,也就是排除
  




页: [1]
查看完整版本: Haproxy隐藏后端服务器信息、实现压缩、手机端跳转