web网关的配置数据基本上都是存在于数据库中,可通过clt -r命令将配置数据导出成xml文件,修改后再更新到数据库中clt -u。
主要的配置如下:
一、 内网URL的配置(转向proxy的域名,该配置只适合添加域名)
该配置涉及三个文件http-client.xml、header-filter-request.xml、hostresolver.xml
http-client.xml 配置url的指向
将需要指向proxy的url填写到这里
stringsetinnerProxyUrls=Str.createSet("*.*.uni-info.com.cn","*.wap.wo.com.cn",…………)
stringspecialUrl = Str.concat(Str.concat(HttpReq.getProtocol(),"://"), Str.concat(HttpReq.getHost(), HttpReq.getPath()),Str.concat("?", HttpReq.getQuery()));
------此语句用来处理识别URL中存在?问号
if(Str.setContains(innerProxyUrls, HttpReq.getHost()) ||Str.setContains(innerProxyUrls, fullUrl) || Str.setContains(innerProxyUrls,dirUrl))
{
return"httpproxy";
}
匹配以上域名的url,则转向"httpproxy"的配置
10.184.73.140是proxy的IP地址,端口是8000
elseif(HttpReq.hostMatch("mmsc.myuni.com.cn")|| HttpReq.hostMatch("192.168.30.180") ||HttpReq.hostMatch("mmsc.monternet.com"))
{
return"mmsc";
}
匹配mmsc.myuni.com.cn、192.168.30.180、mmsc.monternet.com的,都转向" mmsc "彩信中心地址的配置
10.184.73.180是彩信中心的IP地址,端口是8080
其他默认的指向default,即表示出公网。
else
return "default";
header-filter-request.xml 配置请求中的http头信息
stringsetinnerProxyUrls = Str. createSet("*.*.uni-info.com.cn","*.wap.wo.com.cn",…………)
送到proxy的都要传递手机号,这一块儿的配置跟http-client一致。
Mem.setConfigParams(Msid.toString(Auth.getMsisdn()),bearerType, Ip.toString(HttpReq.getTerminalIp()), Ip.toString(Auth.getGgsnIp()));
return "httpproxy";
}
匹配以上域名的转到httpproxy配置,其中“x-up-calling-line-id”代表手机号。
各个参数说明:
手机号码:x-up-calling-line-id
手机IP地址:x-forwarded-for
浏览器类型:user-agent
User-Profile的URI:x-wap-profile
接入承载方式:x-up-bear-type
GGSN地址:x-source-id
如果要删除以上某些字段信息,则在
如果要删除User-Agent、x-wap-profile等信息,则需要写成以下格式:
hostresolver.xml内网域名解析
由于内网域名不需要解析,直接转向proxy,将需要指向proxy的域名添加到hostresolver.xml的以下位置中。
………………….
以上配置无需手动修改,应使用httpproxy脚本导入,脚本会自动修改以上三个文件,具体操作如下:(注意:该方法只适用于添加域名指向proxy,长url只能手工添加,方法见第二节)
登录DBU1,进入/opt/httpproxy目录,编辑list.txt文件,写入所有需要指向proxy的url地址(包括原来的和新增的),如:
*.*.uni-info.com.cn
*.wap.wo.com.cn
*.mclient.uni-info.com.cn
*.uni-info.com.cn
10.123.254.*
10.184.68.51
…………
每一行是一条域名数据。
然后执行命令进行全量导入
./intranet.shlist.txt true
list.txt列表编写方法:
clt -r http-client导出来,把stringset innerProxyUrls = Str.createSet(。。。。。)里边的列表搞出来,做成list.txt,一行一条url
注意,这一步只是为了保证列表是现网最新的数据,如果能保证list.txt的内容已是最新的,可以不做,直接在后边追加新域名。
最快的替换方法是使用editplus工具,将"",""替换为回车。然后掐头去尾双引号 再把要添加的url追加到结尾,将list.txt上传到 /opt/httpproxy下,执行
./intranet.shlist.txt true
二、 内网URL的配置(全路径的url指向proxy)
clt -r http-client
http-client.xml
将要指向proxy的url全路径添加到如下蓝色位置:
stringsetproxyUrls = Str.createSetIgnoreCase(
"http://gwap.yes3g.com/gwap/gl_mccyc/index.jsp",
"http://gwap.yes3g.com/gwap/gl_mjqxz/index.jsp",
"http://gwap.yes3g.com/gwap/gl_fyttkx/index.jsp",
"http://gwap.yes3g.com/gwap/gl_jcqxdt/index.php",
… … … …
if(Str.setContains(proxyUrls,fullUrl) || Str.setContains(proxyUrls, dirUrl) || Str.setContains(proxyUrls,specialUrl))
{
return "httpproxy";
}
三、 增加传递明文手机号码
登录DBU
clt -rheader-filter-request
header-filter-request.xml
将需要传递明文手机号码的url添加到如下位置,这里增加的域名是除了以上在innerProxyUrls列表中要转向proxy的内网地址之外的需要传递手机号的域名列表。
stringset onlineHall =Str.createSetIgnoreCase("wap.10010.com","mob.10010.com",………….);
return "onlineHall";
其转向的是
这里转向的是手机营业厅的配置,其中http头中带手机号码x-up-calling-line-id。
四、 终端适配
登录DBU
clt -r contentadaptation
contentadaptation.xml;
不需要终端适配的url添加到如下地方
if(HttpReq.hostMatch("unisk.wap.wo.com.cn") ||HttpReq.hostMatch("tom.wap.wo.com.cn") ||HttpReq.hostMatch("qh.2g.wo.com.cn")……)
{
isenable="disable";
}
其他默认都是进行终端适配的。
return isenable;
五、 增加重定向
例如:访问*.tt560.com和wap.tusss.net重定向到www.wo.com.cn
登录DBU
clt -r authorization
msid msisdn = Auth.getMsisdn ();
msidrange barredRange = Msid.createRange("861*");
string urlToRedirect ="wap.tt560.com";
stringurlRedirected="http://www.wo.com.cn";
if ( Msid.rangeContains (barredRange, msisdn)&& (HttpReq.hostMatch("*.tt560.com") || HttpReq.hostMatch ("wap.tusss.net")))
{
Mem.setConfigParams ( urlRedirected);
return "redirect";
}
]]>
需要重定向的url追加到红色字体部分
首次浏览重定向
if(Session.getStr("FirstTime") == "") {
Session.putStr("FirstTime", "99");
Mem.setConfigParams("http://www.wo.com.cn");
return "redirect";
}
]]>
六、 访问控制
web网关可以针对手机号段和具体手机号码,访问网站进行限制或允许访问。
clt -r authorization
1. 针对手机号段和访问域名进行限制访问的配置,如156号段禁止访问baidu和google网站:
msid msisdn = Auth.getMsisdn ();
msidrange barredRange = Msid.createRange ("86156*");
string barredUrl = "www.google.com";
if (Msid.rangeContains (barredRange, msisdn) && (HttpReq.hostMatch("www.baidu.com")|| HttpReq.hostMatch("www.google.com")))
{
return "deny";
}
else
{
return "allow";
}
]]>
2. 涉黄网站封堵,将禁止访问的域名追加在以下列表后边:
stringset denyUrls = Str.createSetIgnoreCase(
"*.1234vv.com",
"*.172tp.cn",
"*.17cr.cn",
"*.18nrse.cn",
"*.258sl.cn",
………………
长url放在下边
stringset longUrls =Str.createSetIgnoreCase(
"http://www.google.cn/gwt/x/i?client=ms-tencent_cmcc-cn&ei=cdQNS5yXLpjq6AP5qqzhBw&output=wml&u=http%3A%2F%2Fimages.sxx.com/pic_teasers/1/15/1575/92f3d9191f/nude/01/1575_04.jpg&wsc=ti&wsi=1f5e4305249289c7",
"http://wap.sohu.com/book/paihang/?pg=BKREVIEW&nid=928&stid=dv&bkid=86758&cpid=48&t=93975",
"http://wap.baidu.com/s?word=%E4%B9%B1%E4%BC%A6%E6%BF%80%E6%83%85%E6%80%A7%E4%BA%A4&pn=10&rn=5&tn=webmain&from=140a_w1_1258388821&ssid=0&bd_page_type=0&prest=111001&st=111181&tt=22322&uid=index_124&pu=pd%402%2Cuc%400",
"http://gamexg.com/Book-readchapter-2445-712949-1-10000.html",
"http://news.wap.sohu.com/sogou/webs/?pg=webz&url=http%3A%2F%2Fz.easou.com%2Fshow.m%3Fpn%3D2%26amp%3Ba%3D0%26amp%3Bq%3D55niu.com%26amp%3Bsr%3Dhttp%253A%252F%252Fa.44b4.com%252Fhtml%252Fdushijiqing%252F1013313U2009.html%26amp%3Bsurl%3D%26amp%3Besid%3Dr2A-YFaj4zHWZ",
"http://3g.sina.com.cn/prog/wapsite/books/vipc.php?bid=99452&cid=62754&pn=3&isc=n&pcn=0&fix=0&vt=1&PHPSESSID=960342f0b4ff3171de805eec57f509e4&wm=4007",
"http://news.wap.sohu.com/pim/message/fmsglist.do?&u_uid=330544100_137d87dc&fr=uc001",
"http://hti.wap.wo.com.cn/3g/20/3GJ.wap",
"http://hti.wap.wo.com.cn/3g/20/3GO.wap",
"http://hti.wap.wo.com.cn/3g/20/3GI.wap",
"http://hti.wap.wo.com.cn/3g/20/3GC.wap",
……………..
]]>
3. 针对具体手机号和访问域名进行限制访问的配置,如手机号18609716448禁止访问baidu和google网站。
msid msisdn = Auth.getMsisdn ();
msidset barredRange1 = Msid.createSet("8618609716448");
if (Msid.setContains(barredRange1,msisdn) && (HttpReq.hostMatch("www.baidu.com") || HttpReq.hostMatch("www.google.com")))
{
return "deny";
}
else
return "allow";
]]>
七、 图片压缩比配置
clt -r compression
ImageQualityReductionLevel="70"配置压缩率
八、 push配置
clt -r push
APP配置文件:/etc/nbg/system/setup/cluster/cluster_setup.xml