测试环境:(虚拟机)
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使用方法。