【案例】http实体(返回内容)改写案例
  

高俊洪_广州办_技术支持 2883

{{ttag.title}}
背景:客户有台OA服务器,内网打开OA通讯录非常慢,大约需要3-4秒左右才能打开,即使同个用户2次打开同一个通讯录也同样要用3-4秒。考虑用ad的http缓存缓解一下这个情况。

测试遇到的问题:依据客户提供的服务器信息(ip、端口、访问方式、url后缀),配置相关的ad,启用缓存,这里都是正常的虚拟服务配置。

配置信息有:oa:10.1.0.197,端口是80、9080,
平时内网直接访问oa是输入http://10.1.0.197
服务器自动跳转到:http://10.1.0.197:9080/portal/Login/enter.jsp
ad提供的单臂ip是:10.1.18.10。

配置完毕后测试,进行测试,发现输入10.1.18.10之后,自动跳转到
http://10.1.0.197:9080/portal/Login/enter.jsp

分析:经过抓包分析,输入http://10.1.18.10的时候,客户端去服务器进行http请求的时候,服务器会直接返回一个js的文件,该文件里面的执行代码会强制客户端跳转到指定的页面上去,如http://10.1.0.197:9080/portal/Login/enter.jsp

处理思路:
  • 1. 让客户取消js自动跳转;
  • 2. Ad改写js文件,让客户度执行的js文件跳转的目标是ad。


处理方法:
  • 1. 让客户取消js自动跳转,结果客户端只有在输入完整的url的情况下才能打开页面,这个方法能够测试此项目的最终需求(缓存),但是不方便,尝试给客户做http头部改写,经过测试,客户的OA登录页面太多因素,改写后存在访问异常。这个方法短期内无法较好的解决问题,不采用。
  • 2. 不取消自动跳转,保持服务器原有所有配置,修改服务器返回的js文件,讲AD的IP替换掉原系统的IP,然后由AD给客户返回修改后的js文件,客户端执行js后,跳转后的地址就是AD的IP了,操作步骤如下:

A、通过后台抓包或者httpwatch,获取到服务器返回js的http实体,实体内容如下,
  

B、在AD的公共对象—》自定义内容,新建一个自定义,把以上内容copy到内容区中

HTTP头部的原始数据为:
HTTP/1.1 200 OK
Date: Tue, 23 Apr 2013 03:59:22 GMT
Server: IBM_HTTP_Server
Last-Modified: Fri, 30 Sep 2011 01:57:46 GMT
ETag: "85b5-34a-f3a283f1"
Accept-Ranges: bytes
Content-Length: 842
Keep-Alive: timeout=10, max=100
Connection: Keep-Alive
Content-Type: text/html
<script>........</script>

按如下方式修改 :
          HTTP/1.0 200 OK
           Date: Tue, 23 Apr 2013 03:59:22 GMT
           Server: IBM_HTTP_Server
           Last-Modified: Fri, 30 Sep 2011 01:57:46 GMT
           Accept-Ranges: bytes
Content-Type: text/html
<script>........</script>

说明:http版本从1.1改为1.0(建议修改为1,0,1.0默认支持短连接),将http涉及到的存活时间全部去掉,将http实体具体参数去掉。

到这一步还需要对该http实体进行最重要的修改,就是修改js里面的跳转参数,通过查找,定位为:newUrl="http://10.1.0.197:9080/portal/stPortal/default.jsp";将这个newUrl跳转的url ip修改为ad的ip即:
newUrl="http://10.1.18.10:9080/portal/stPortal/default.jsp";

C、新增一个基于目标虚拟服务的前置策略,如下



说明:由于这个js是在访问/的时候服务器才会返回,根据实际情况,配置匹配ad修改http实体的条件(这里配置了GET /以及host是10.1.18.10即ad)。最后在相关的虚拟服务将这个策略进行关联。配置完成

处理结果:通过http实体改写,实现了预期。

打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

灞波奔 发表于 2019-1-15 18:00
  
  占个座位
sowkd 发表于 2019-4-29 00:33
  
一般的问题都能在这里解决。
发表新帖
热门标签
全部标签>
每日一问
GIF动图学习
信服课堂视频
项目案例
产品连连看
技术笔记
在线直播
技术咨询
SDP百科
专家分享
原创分享
VPN 对接
安装部署配置
技术圆桌
功能体验
新版本体验
答题自测
每日一记
畅聊IT
专家问答
SANGFOR资讯
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
技术顾问
信服故事
标准化排查
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告

本版达人

新手61940...

本周建议达人

zhao_HN

本周分享达人

ZSFKF

本周提问达人