服务器 频道

架设Proxy服务器4:设定代理服务器

  【IT168 服务器学院】设定代理服务器

  这里仅提供简单的代理服务器的设定,如果你需要更详细的设定的话,请到 squid 的网页去看看吧!
  需要给予设定的档案:

· 基本上,需要给予设定的档案只有一个,即是 squid.conf 这个档案。要注意的是,如果你是以 rpm 安装的,则这个档案会放在 /etc/squid/ 中,如果你是以 binary 安装的,那这个档案就会放在 /usr/local/squid/conf 当中!

· 另外,程序预设的激活批次档, rpm 的是 /etc/rc.d/init.d/squid 这个档案,而 binary 则在 /usr/local/squid/bin/squid 这个档案;

· 而程序预设的暂存目录在 /var/spool/squid !

  以下我将以 rpm 的档案进行说明,当然啰, binary 的修改是一样的,只是档案放置的地点不一样罢了!
确定 squid 可以正常执行:

  我们先简单修改一下 /etc/squid/squid.conf 这个档案,让他可以被激活,然后再继续往下修改!

· 找到下面几行,将批注(#)拿掉: 



· 找到下面这行,并改成下列情况:
http_access deny all ==> http_access allow all

· 上面那一行改好之后,储存并离开 vi ,然后执行:
/etc/rc.d/init.d/squid start
或者是
/usr/local/squid/bin/squid

  如此则 squid 应该可以正常执行了!接下来请到 IE 中,如果你是 IE 5.0 以后的版本,请到:

『工具』->

『Internet 选项』->

『联机』->

『局域网络设定』中,点选

『使用 Proxy 服务器』

  并在网址列输入你的主机名称(或者是 IP 均可),然后按确定离开!然后在 IE 中按按看网页的设定有没有成功,如果可以读到网页的话,表示 squid 可以正常的被使用了!

  虽然 squid 可以被使用,但是要让你的 squid 实际发挥应有的能力时,你应该最少要设定一些基础的参数的!所以请继续往下看吧!

进阶的 squid.conf 设定:

  在完成了上述的设定之后,你的 Proxy Server 就可以激活了,不过,如果你想要再进一步进行设定的话,例如刚刚提过的,你想要让 squid 的上层代理伺服器具有选择性,以及想让 squid 的暂存空间更大,那你就必须要再设定了,以下提供几个不错的网页提供给你做为参考!

· 优克笔记本

· 台北市教育网络中心

  基本上,需要注意的地方主要可以分为底下几个:

· http_port 3128:

  这个东西是用来设定你的 Proxy 监听讯息的 port ,目前 proxy 通用的 port 是 3128 ,但是你也可以自行设定一个大于 1024 的 port ,例如另一个常用的 port 是 8080 这一个。不过我并不建议你修改这个 port ,因为如果你修改了之后,很有可能会造成无法联机的情况,所以还是使用默认值 3128 吧!

· cache_peer:(相当重要的!)


  这个就是用来设定上层代理服务器的指令,刚刚有提过『代理服务器可以设定多个』,而且你可以将代理服务器分类,以我为例,因为我住台南,所以成大计中对我而言是一个很不错的服务器,则我如果要向上层代理服务器要求讯息,可以指向成大计中(快很多喔!),亦即是 proxy.ncku.edu.tw 3128 这一个,请你依照你的所在地来设定你的代理服务器吧。

o cache_peer proxy.ncku.edu.tw parent 3128 3130

  上面的说明是,使用 proxy.ncku.edu.tw 这个主机当作 主要的(parent,就是父母的意思)上层代理服务器,另外,如果你想要向对等的服务器要求东西,就可以将 parent 写成 slbling 啰!除此之外,这一个指令可以重复写入,也就是说,你可以同时设定多个上层代理服务器!不过这里要向大家报告一下,如果设太多上层服务器的话,由于资料会一层层的去要求,所以速度反而会变慢!基本上是建议大家只要设定两个到三个左右的上层代理服务器就好了。

  再者,3128是 squid 主要的 port ,而 3130 则是另外一个监听的 port ,也要写上去喔!

· cache_peer_domain:(相当重要的!)

  这个参数可以用来分别指定不同网域的代理服务器,以我为例,因为常上美国 EPA 的网站,而 proxy.ncku.edu.tw 对于这个网站的读取能力很强,另外,gate.ncku.edu.tw 这个 proxy 则对 ucar.edu 这个美国网域的读取能力较强,那我可以使这两个网域向不同的 proxy 索取资料:

o cache_peer_domain proxy.ncku.edu.tw .epa.gov

o cache_peer_domain gate.ncku.edu.tw .ucar.edu

  那你晓得了吗?只要你在这里分别指定不同的代理服务器,那你自己的这个代理服务器就自动的帮你完成你需要的资料来源了!很重要吧!

· cache_mem 8 MB:

  这东西与你的内存有关,如果你的内存够大的话,这个 8 可以变大一些,例如你的内存有 256 MB 时,你可以设成 256*1/4 ==> 64 MB,如果你只有 64MB,而且主机还有其它用途,那使用预设的 8 MB 就好了。

· cache_dir ufs /var/spool/squid 100 16 256:(update 2001/11/09)

  这个指令就是限制暂存区大小的地方啦,上面的说明是:暂存区目录为 /var/spool/squid ,而暂存空间大小为 100M , 在这个暂存目录下有 16 个目录,而每个目录中又有 256 个目录(你可以实际进入 /var/spool/squid 当中去看看)。如果你要改变暂存盘目录及这个目录的大小时,可以在这里修改!不建议修改 16, 256 这两个数值。另外,通常,如果是我们一般小型的区网(不超过10个人),那设定个 500 应该够了,如果你的硬盘够大,设定成 1000 以上更好。修改过这个指令后,要再重新激活 squid 之前,请先使用下面的指令来使你的目录可以进行存取的动作,否则你的 squid 是不会工作的!例如你将上面的参数修改成:
cache_dir ufs /var/spool/squid 1000 16 256

然后再进行下面的指令:

rm -rf /var/spool/squid

mkdir /var/spool/squid

chown squid:squid /var/spool/squid

/usr/sbin/squid -z

  这样你的squid暂存目录就可以使用啰!

  另外,如果你刚刚在安装的时候有将 --enable-async-io=40 这一个加进来的话,将可以增加 aufs 这一个磁盘的用途!这个东西可真是好呀!可以将你的硬盘发挥到最极限的速度喔!虽然在 squid.conf 档案中有提及,这个 type 可能会有 bug 存在,不过,据鸟哥的使用结果,发现,没啥大问题!好用的很!所以,你可以将上面的咚咚改成下面的样子:

cache_dir aufs /var/spool/squid 1000 16 256

· acl 与 http_access:

  这两个档案是相互辉映的,例如:如果你只要将这个 Proxy 开放给内部网络 192.168.1.XXX 用的话,你可以增加这三行:

o acl insidenet src 192.168.1.0/255.255.255.0 (insidenet 只是一个代号,你可以任意设定,但须与底下的相同名称。而 src 代表后面接的是 IP 的意思,而后面的 IP(255.255.255.0) 表示 192.168.1.0~192.168.1.255 均为此设定中!)

o http_access deny all(关于 proxy 全部的服务均取消)

o http_access allow insidenet localhost(仅开放 Proxy 给 insidenet 及 localhost 两个网域使用)

· cache_mgr root:

  当 squid 有问题的时候,要联络谁?通常我都将 root 改成我自己的 ID ,如此才能在其它的机器上收到信!

o cache_mgr vbird@tsai.adsldns.org

· acl 与 always_direct:(很重要)


  这个就是是否需要直接去读取你要的网页,而不要透过上层代理服务器的指令(重要)。例如:我们不需要在台湾地区的学术网络还透过上层代理服务器的话,可以写入这两行:

o acl Taiwan-net dstdomain .edu.tw(就是设定网址,其中 dstdomain 后面接的就是网址,网址的型态亦可仅写成 .tw 即可)

o always_direct allow Taiwan-net(这个网址的网页,直接由我们这个 Proxy 去捉,而不透过上层 Proxy)

· acl 与 never_direct:

  这个就是不要直接去取得资料的设定处,例如我们常去的美国环保署网站,我们希望关于这个网页的资料一定由上层 Proxy 去捉取,则可以这样设定:

o acl usepa dstdomain .epa.gov

o never_direct allow usepa

  上面这个 always_direct 与 never_direct 的设定可以是多重的,你可以多写入几个对应的网址,去定义你的上层 Proxy 的工作路径!

· prefer_direct off:

  上面这个选项一定要设定为 off ,不然的话你的 squid 将会尝试直接到网站去捉资料,而不会透过上层 proxy 喔!

· 重新激活:

  设定完成之后,最重要的就是重新激活了,你可以这样来激活:

o /etc/rc.d/init.d/squid restart

o /usr/local/squid/bin/squid -k reconfigure

· 特别需要注意的地方:基本上这样的 squid 设定应该能满足你的需求了,如果你的上层代理服务器设定妥当的话,那你应该会感受到代理服务器带给你的网络联机速度上的快乐喔!不过有些地方还是需要注意一下的:

1. 目前作为代理服务器的主机,大都由于频宽的问题,所以会限制联机上来的使用者,就是上面的 http_access 这个参数的设定值,因此,你应该针对你所在的网域去调查你的上层代理服务器,若可能的话,可以提出申请,请管理员帮你开启使用,否则对 squid 是不会有帮助的!

2. 在 acl 后面接了代号及 dstdomain 之后,如果你要接一个网域的话,请在前面加 . 例如美国环保署的网站(不论是 www 或其它)就要写成 .epa.gov 而不是 epa.gov(先前我搞错了!向大家对不起!),这样一来,不论 www.epa.gov 或 adb.epa.gov 才会经过你的上层 proxy 喔!

3. 请依照你实际的需求来设定 acl 与 never_direct 与 always_direct ,例如你人在台湾,那几乎所有 com.tw 的网站都不用透过 proxy 也可以捉得很好!反而透过 proxy 会变慢哩,同样的,如果是学术网络的话,就直接把 .edu.tw 加入到 always_direct 当中吧!

4. 也需要注意一下 cache_peer_domain 用来分流的方法喔!

这里有几个设定的范例可以参考一下:

· 成大 gate.ncku.edu.tw 的 squid.conf 设定

· 电机系 turtle.ee.ncku.edu.tw 的 squid.conf 设定

· 台南学校范例 proxy.school.tn.edu.tw 的 squid.conf 设定
0
相关文章