昨天接到个任务,要求部署一台squid服务器,因公司代理系统都是32位,而idc机房却给装了个64位centos,郁闷到极点,几经尝试,终于部署好了。

    具体系统环境部署,我这里就不累赘了。

   首先安装google-perftools,使用TCMalloc,与标准的glibc库的malloc相比,TCMalloc在内存的分配上效率和速度要高得多,可以在很大程度上提高服务器在高并发情况下的性能,降低系统负载。

   由于google-perftools需要libunwind,到http://nongnu.askapache.com/libunwind/下载最新版本的libunwind。到http://google-perftools.googlecode.com下载最新版本的google-perftools。

  开始安装部署:

  1、安装libunwind

  #tar -xzvf libunwind-0.99.tar.gz

#cd libunwind-0.99

#CFLAGS=-fPIC ./configure

#make CFLAGS=-fPIC

#make CFLAGS=-fPIC install

2、安装google-perftools

 #tar -xzvf google-perftools-1.5.tar.gz

#cd google-perftools-1.5

#./configure

#make

#make install

3、运行如下命令:

#echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
#ldconfig
注意:此步不操作,安装时会提示:“make[1]: *** [cf_parser.h] error 127”这个错误。

4、安装squid

# tar xvzf squid-2.7.STABLE9.tar.gz

#cd squid-2.7.STABLE9

#./configure --prefix=/usr/local/squid --enable-removal-policies=heap,lru --enable-linux-netfilter --enable-storeio=ufs,aufs,diskd,null --enable-epoll --enable-ident-lookups --enable-carp --enable-delay-pools --disable-wccp --disable-wccpv2 --enable-snmp --enable-cachemgr-hostname=squid --enable-cache-digests --with-pthreads --enable-gnuregex --with-aio --enable-large-cache-files --with-maxfd=344800 --enable-async-io=160 --enable-internal-dns --enable-linux-netfilter --enable-kill-parent-hack --enable-default-err-language="Simplify_Chinese"

#cd src

#vi Makefile

找到如下地方:

squid_LDADD = \
-L../lib \

           \

在下面增加一行,变成如下:

squid_LDADD = \
-L../lib \
-ltcmalloc \

                 \

找到如下地方:

LDADD = -L../lib -lmiscutil -lrt -lpthread -lm

修改为:LDADD = -L../lib -lmiscutil -lrt -lpthread -lm -ltcmalloc

#make

#make install

至此squid部署完成。

注意点:64位系统下部署squid,刚开始我使用squid-2.6.STABLE22.tar.gz,编译过程提示netfilter透明代理啥的失败,make过程全是错误,后来又换了个squid-2.6.STABLE23.tar.gz版本,编译还是提示错误,make也是一大堆错误,网上资料也说不清楚到底是哪里的错误。后来换成2.7的稳定版本9,再次尝试,编译正确,make有错误,后来把--enable-removal-policies=“heap,lru”这个的双引号去掉,重新编译后make正常。总算解决一大难题啊。