FreeBSD 研习课程讲义
Prev proxy.pac Next

前言

设定 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);

}

 


Prev Home Next
UP