搭建一个大型网站架构的实验环境(Squid缓存服务器篇)第1/2页

2019-10-15 21:33:15王旭


另外,我们访问Internet时,有时候会遇到这样的网站地址:http://www.hello_world.com,在网站的URL地址里面有下划线,这时Red Hat Linux自带的squid软件包可能会报告无法访问该网站。

这些功能需要重新编译squid源代码增加相应的编译选项来实现。下面我们就来看一下如何使用rpm重新编译软件包源代码获得必要的功能。

当文章写到这里的时候,Red Hat Linux网站发布了squid的升级软件包,我们可以从网上获得它的最新源代码rpm包:

ftp://updates.redhat.com/7.2/en/ ... ABLE6-6.7.3.src.rpm

在开始编译前,有一些软件包是需要首先安装,这可能包括rpm-build、sgml-tools,前者在Red Hat Linux的光盘上可以找到,后者可以从这里下载:

ftp://ftp.freesoft.cei.gov.cn/.m ... s-1.0.9-12.i386.rpm

安装squid的源代码包

[root@rh73 ~]# rpm -ivh squid-2.4.STABLE6-6.7.3.src.rpm

安装后的源代码包在/usr/src/redhat/SOURCES目录下,我们关心的是另外一个文件/usr/src/redhat/SPECS/squid.spec,这里面有squid的相关编译选项,修改该文件%configure部分如下:

%configure

--exec_prefix=/usr --bindir=/usr/sbin --libexecdir=/usr/lib/squid

--localstatedir=/var --sysconfdir=/etc/squid

--enable-poll --enable-snmp --enable-removal-policies="heap,lru"

--enable-storeio="aufs,coss,diskd,ufs"

--enable-delay-pools --enable-linux-netfilter

--with-pthreads

--enable-underscores

--enable-arp-acl

--enable-err-language=Simplify_Chinese

--enable-auth-modules="LDAP,NCSA,PAM,SMB,MSNT" # --enable-icmp

--enable-underscores是增加对下划线网址的支持,--enable-arp-acl是增加支持MAC地址方式的鉴权。


开始编译产生新的RPM包:

[root@rh73 ~]# rpm -ba squid.spe

这条命令将根据squid.spec的配置重新编译生成新的rpm包。编译过程视机器性能的好坏而定,大概需要几分钟到几十分钟不等,如果没有什么错误,最后产生的新的rpm包在/usr/src/redhat/RPMS/i386/目录下:squid- 2.4.STABLE6-6.7.3.i386.rpm

安装新的rpm包:

[root@rh73 ~]# rpm -Uvh /usr/src/redhat/RPMS/i386/squid-2.4.STABLE6-6.7.3.i386.rpm

注意,这里使用了-U参数,是因为我们前面已经安装过squid的一个较旧的版本,-U参数指出这个操作是对原有版本软件包的升级。现在你的squid就可以支持MAC地址鉴权和带下划线的URL地址了。 8)

配置squid.conf来支持MAC地址鉴权,在squid.conf里加入这样的内容:

acl allowedmac arp00:10:DC:8F:5B:FF

http_access allow allowedmac

上面只是常用的几种ACL设置的示例,关于ACL可以访问squid主页上FAQ文档的Access Controls部分获得更多的信息:

http://www.squid-cache.org/Doc/FAQ/FAQ-10.html

§§ 配置透明代理

透明代理是NAT和代理的完美结合,之所以称为透明,是因为在这种工作方式下你感觉不到代理的存在,和单纯使用NAT一样,对上网的客户端没有任何特殊的设置。Squid可以通过配置支持透明代理。