|
||||||
|
前言 设定 proxy.pac 档是为了分流,避免网路流量塞在同一台,影响整体效能,故把一些网址分类,来使的每一台机器都能够平均分摊流量,这也会使机器避免浪费效能。
由图可看出,当使用者利用 pac 档来浏览网页时,会把 URL 分类,然后从某一台机器出去,达到负载平衡。 中心的 proxy.pac 说明一下,中心现阶段的 proxy.pac 档
//===============================================================
// 高雄县教育网路中心
// Kaohsiung Education Network Center
// 代理伺服器自动组态设定档修改版
// Proxy Auto Configure Mixed
//===============================================================
// 提供 pac 档的讯息
function FindProxyForURL(url, host) // pac 档必须要有
{
// host, url 变成小写
var lhost = host.toLowerCase();
var lurl = url.toLowerCase();
// 不合规定的 url
if (host.indexOf(",") != -1
|| host.indexOf("..") != -1
|| host.indexOf("]") != -1
|| host.indexOf("!") != -1
|| dnsDomainIs(lhost, "localhost")
|| inNet(lhost, "127.")
|| inNet(lhost, "192.168.")
|| inNet(lhost, "172.16.")
)
return "DIRECT";
// 搜寻引擎
if (inDomain(lhost, "tw.yahoo.com")
|| inDomain(lhost, "tw.yimg.com")
)
return "DIRECT";
//
// Direct in KSnet & TANet's Domain & 南区 TANet's IP
//
if (isPlainHostName(lhost)
|| inDomain(lhost, ".edu.tw")
|| inDomain(lhost, ".loxa.edu.tw")
|| inDomain(lhost, ".loxa.com.tw")
|| inDomain(lhost, ".loxa.com")
|| inNet(lhost, "163.16.") // KSnet
|| inNet(lhost, "163.28.138.")
|| inNet(lhost, "203.68.246.")
|| inNet(lhost, "203.68.247.")
|| inNet(lhost, "203.72.122.")
|| inNet(lhost, "203.71.185.")
|| inNet(lhost, "203.71.208.")
|| inNet(lhost, "203.71.250.")
|| inNet(lhost, "210.60.76.")
|| inNet(lhost, "210.60.77.")
|| inNet(lhost, "210.60.110.")
|| inNet(lhost, "210.60.161.")
|| inNet(lhost, "210.60.233.")
|| inNet(lhost, "210.60.234.")
|| inNet(lhost, "210.70.89.")
|| inNet(lhost, "140.117.") // 中山
|| inNet(lhost, "140.116.") // 成大
|| inNet(lhost, "140.123.") // 中正
|| inNet(lhost, "140.127.") // 高雄
|| inNet(lhost, "163.15.") // 高雄
|| inNet(lhost, "163.18.") // 高雄
|| inNet(lhost, "163.24.") // 屏东
)
return "DIRECT";
// .tw 网域的站台
if (inDomain(lhost, ".tw")
|| shExpMatch(host, "tw.*")
)
return "PROXY 163.28.138.6:3128";
// .com
if (inDomain(lhost, ".com"))
return "PROXY 163.28.138.3:3128";
// .net
if (inDomain(lhost, ".net"))
return "PROXY 163.28.138.5:3128";
// all other URL
return "PROXY 163.28.138.5:3128";
}
// 自订函数,网址分析
function inNet(str, prefix)
{
return (str.indexOf(prefix) == 0);
}
// 自订函数,IP 分析
function inDomain(str, postfix)
{
var n = str.lastIndexOf(postfix);
return (n >= 0 && n + postfix.length == str.length);
}
|
||||||
|
||||||