Nginx+Squid+Apche 负载均衡配置示例(2)

二,配置反向代理squid缓存加速服务器,两台的配置一致即可
[root@server1 ~]# groupadd squid
[root@server1 ~]# useradd -g squid -s /sbin/nologin squid
[root@server1 ~]# cd /usr/local/src/tarbag/
[root@server1 tarbag]# wget ftp://ftp.dti.ad.jp/pub/unix/net/proxy/squid/squid-3.1.2.tar.gz
[root@server1 tarbag]# tar -zxvf squid-3.1.2.tar.gz -C ../software/
[root@server1 tarbag]# cd ../software/squid-3.1.2/
[root@server1 squid-3.1.2]# ./configure --prefix=/usr/local/squid --enable-gnuregex --enable-arp-acl --enable-auth="basic" --enable-basic-auth-helpers="NCSA" --enable-async-io=80 --enable-storeio=ufs --enable-icmp --enable-kill-parent-hack --enable-snmp --disable-ident-lookups --enable-cache-digests --enable-ssl --enable-delay-pools --enable-poll --enable-linux-netfilter --enable-underscore --enable-err-language="Simplify_Chinese" --enable-default-err-languages="Simplify_Chinese"

编译选项注解:
--prefix=/usr/local/squid    //指定安装路径
--enable-arp-acl             //这样可以在规则设置中直接通过客户端的MAC地址进行管理,防止客户使用IP欺骗
--enable-async-io=80         //这个主要是设置async模式来运行squid,我的理解是设置用线程来运行squid,如果服务器配置很不错,有1G以上内存,cpu使用SMP的方式的话可以考虑设成160或者更高,如果服务器比较糟糕就根据实际情况设了,另外此项还使cache文件支持aufs
--enable-auth-modules        //此编译选项启用认证模块,可以对访问代理用户进行授权;
--enable-cache-digests       //使能缓存摘要,本来此项目的是为了在Squid集群服务之间迅速发现缓存对象,这里在本地使用,可以加快请求时,检索缓存内容的速度;
--enable-err-language="Simplify_Chinese" 和--enable-default-err-languages="Simplify_Chinese" //指定出错是显示的错误页面为简体中文
--enable-delay-pools           //此选项使能一个延时池,这样能对某些特定的请求限制额定带宽。
--enable-gnuregex              //由于Squid大量使用字符串处理做各种判断,加此项能更好处理。
--enable-icmp                  //加入icmp支持
--disable-ident-lookups        //防止系统使用RFC931规定的身份识别方法。
--enable-kill-parent-hack      //关掉suqid的时候,连同父进程一起关掉
--enable-linux-netfilter       //允许使用Linux的透明代理功能。
--enable-poll                  //应启用Poll()函数而不是select()函数,通常而言poll(轮询)比select要好,但configure(脚本程序)已知Poll在某些平台下失效, 若你认为你比configure编译配置脚本程序要聪明的话,可以用这个选项启用Poll。总之就是用这个可以提升性能
--enable-snmp                 //此选项可以让MRTG使用SNMP协议对服务器的流量状态进行监测;
--enable-storeio=ufs,null     //使用的文件系统通常是默认的ufs,不过如果想要做一个不缓存任何文件的代理服务器,就需要加上null文件系统;
--enable-underscore           //允许解析的URL中出现下划线,因为默认squid会认为带下划线的URL地址是非法的,并拒绝访问该地址;

[root@server1 squid-3.1.2]# make && make install
[root@server1 squid-3.1.2]# ls /usr/local/squid/
bin  etc  include  lib  libexec  sbin  share  var
[root@server1 ~]# chown -R squid.squid /usr/local/squid/
[root@server1 ~]# /usr/local/squid/sbin/squid -z
2010/05/06 13:05:40| Creating Swap Directories

[root@server1 ~]# grep -v '^#' /usr/local/squid/etc/squid.conf   //squid反向代理的关键配置
cache_effective_user squid
cache_effective_group squid
http_access allow all
http_port 80 accel vhost vport
coredump_dir /usr/local/squid/var/cache
cache_peer pic.linuxidc.com  parent 80 0 no-query originserver name=pic
cache_peer_domain pic   pic.bleachyang.co
……………………………………其他信息省略……………………………………………………

[root@server1 ~]# /usr/local/squid/sbin/squid    //启动squid
[root@server1 ~]# netstat -ntpl |grep squid
tcp        0      0 :::80                       :::*                        LISTEN      384/(squid)

[root@server1 ~]# grep pic /etc/hosts           //需要在反向代理的hosts文件上加上后台服务器的IP
192.168.122.1   pic.linuxidc.com

日志信息:
[root@server5 ~]# tail -f /usr/local/nginx/logs/pic.bleachyang.log
192.168.122.1 - - [06/May/2010:17:01:41 +0800] "GET /1.jpg HTTP/1.1" 304 0 "" "Mozilla/5.0 (X11; U;

Linux i686; zh-CN; rv:1.9.0.12) Gecko/2009070811 Red Hat/3.0.12-1.el5_3 Firefox/3.0.12"

[root@server1 ~]# tail -f /usr/local/squid/var/logs/access.log
1273135928.937      4 192.168.122.1 TCP_MISS/304 284 GET - FIRST_UP_PARENT/pic -

[root@server2 logs]# tail -f /usr/local/squid/var/logs/access.log
1273136458.753    129 192.168.122.1 TCP_MEM_HIT/200 1299980 GET - NONE/- image/jpeg
1273136459.871      7 192.168.122.1 TCP_MISS/404 598 GET - FIRST_UP_PARENT/pic

text/html

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyjywz.html