测试环境:(虚拟机)

Apache服务器:Rhel5.3 IP :192.168.1.9 掩码:255.255.255.0 网关、DNS:192.168.1.9
Squid服务器:Rhel5.3 IP:192.168.1.8 192.168.0.8
客户机:XP系统 192.168.0.20

一:Squid概述:
    Squid是能够作为HTTP、FTP、以及其他请求的代理服务器使用的互联网对象缓存。就是通常我们所说的代理服务器。
二:Apache服务器的配置:
    配置好DNS,Apache并使他们能正常工作。
    可以参考: http://iminmin.blog.51cto.com/689308/192805
三:Squid服务器基本配置:
    1、eth0: IP 192.168.1.8
    eth0:1 IP 192.168.0.8
    关于如何给一个网卡绑定多个IP可以参照: http:// iminmin.blog.51cto.com/689308/205774
    2、安装Squid:
    1)搭建好Yum源:可以参照: http://iminmin.blog.51cto.com/689308/162666(使用第二种方法)
    2)安装squid:
    yum install squid* -y
    3)配置 /etc/Squid/squid.conf
    A、设置 http_port端口。默认端口是3128,可以修改成8080。
-----------------------------------------------------------
[root@rhce ~]# cd /etc/squid/
[root@rhce squid]# vim squid.conf
......省略前面的
# Squid normally listens to port 3128
http_port 8080 //默认端口为3128
# TAG: https_port
# Usage: [ip:]port cert=certificate.pem [key=key.pem] [options...]
......省略后面的
-----------------------------------------------------------
    B、修改 cacah_mem 缓存:
-----------------------------------------------------------
......省略前面的
#Default:
cache_mem 8 MB //高速缓存大小,默认8MB
......省略后面的
-----------------------------------------------------------
    C、 cache_dir设置硬盘缓存。
-----------------------------------------------------------
......省略前面的
#Default:
cache_dir ufs /var/spool/squid
100 16 256 //100表示缓存大小,单位MB;16个一级目录,256个二级目录
......省略后面的
-----------------------------------------------------------
    D、访问控制列表:
-----------------------------------------------------------
acl all src 0.0.0.0/0.0.0.0 //all表示所有客户端,但默认被限制。
acl test src 192.168.0.0/255.255.255.0 //设置自己的控制列表,test表示列表名字,src:源地址;192.168.0.0/255.255.255.0表示 列表的地址段。
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
......中间部分省略
http_access allow manager localhost
http_access deny manager
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports
......中间部分省略
# be allowed
#acl our_networks src 192.168.1.0/24 192.168.2.0/24
#http_access allow our_networks
# And finally deny all other access to this proxy
http_access allow localhost
http_access allow test //我们自己建立的控制列表,Allow,这个一定要写到下面行的上面。
http_access deny all //默认all是被限制的。
-----------------------------------------------------------
    4)初始化 squid
-----------------------------------------------------------
[root@rhce squid]# squid -z
2009/10/12 22:06:11| Creating Swap Directories
[root@rhce squid]# squid -zX //创建缓存目录,16个一级目录,256个二级目录
-----------------------------------------------------------
    5)启动 squid服务:
-----------------------------------------------------------
[root@rhce squid]# chkconfig squid on
[root@rhce squid]# service squid restart
停止 squid:             [失败]
启动 squid:.            [确定]
-----------------------------------------------------------
四:开启Linux内核路由转发功能:
-----------------------------------------------------------
[root@rhce squid]# vim /etc/sysctl.conf
......前面部分省略
# Controls IP packet forwarding
net.ipv4.ip_forward = 1 //默认值为0,修改成1,开启路由转发功能。
......后面部分省略
-----------------------------------------------------------
    修改后执行: sysctl -P
五:客户端配置:
    1、I P:192.168.0.20,网关、DNS:192.168.0.8
     联通情况:


    能看到可以连通Squid服务器,但是不能连通Apache服务器。

    2、修改IE属性:




    3、打开IE:输入192.168.1.9:测试Squid代理




    备注:
    上面的文章只是Squid的基本配置文章,大家可以通过它来了解Squid的基本配置方法和一般原理性的东西。
    高级的Squid教程请下载:Squid权威中文指南: http://bbs.51cto.com/thread-624933-1.html 学习高级Squid使用方法。