Squid是一个Linux系统下优秀的代理服务器软件。Squid可以配置普通上网代理(正向代理)、反向代理、透明代理。系统是CentOS6.2。Squid主机IP为192.168.1.100。
安装squid:
yum install squid
安装的版本是squid-3.1.10-1.el6_2.3.i686。
一、正向代理
1、先备份配置文件
cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
2、编辑配置文件
vim /etc/squid/squid.conf
修改:
http_access deny all
为:
http_access allow all
允许所有用户使用代理。
修改:
http_port 3128
为:
http_port 192.168.1.100:3128
设置squid代理IP和端口。
3、检查配置参数是否有错
squid -k parse
初始化缓存:
squid -z
启动服务:
service squid start
查看端口是否打开:
netstat -ntpl
4、在windows上设置代理
打开IE -> 工具 -> Internet选项 -> 连接 -> 局域网设置。勾选代理服务器下面的方格。设置地址为squid代理服务器IP,端口为3128。
二、反向代理
这里假设反代一台主机名为www.aaa.com的主机。
1)恢复为squid默认配置文件,然后再修改:
cp squid.conf.bak squid.conf
vim /etc/squid/squid.conf
添加:
http_port 80 accel vhost vport
cache_peer www.aaa.com parent 80 0 no-query no-digest originserver
说明:
http_port 80 accel vhost vport
squid反代的端口为80
accel:加速模式
vhost:加速模式使用虚拟域的主机头支持
vport:虚拟主机端口支持
cache_peer www.aaa.com parent 80 0 no-query no-digest originserver
定义反代站点语句格式为:cache_peer hostname type http-port icp-port [options]
hostname:定义要反代的主机
type:可以定义parent(父节点)、sibling(兄弟节点)、multicast(组播)
http-port:指向用于接受http请求的端口
options项这里有3个:
no-query 禁止ICP查询到这个邻居
no-digest 禁用缓存请求
originserver 说明父节点是一台实际服务器
squid版本很多,语句规则也有所不同,具体说明可参考:http://www.squid-cache.org/Versions/v3/3.1/cfgman/
还要修改:
http_access deny all
为:
http_access allow all
2)使配置文件生效:
squid -k reconfigure
squid作为反向代理服务器,主要作用是降低原始web服务器的负载。一般代理服务器都配置缓存用于加速。还要设置好被代理主机的DNS。
三、透明代理
透明代理就是用户在使用squid时不更改浏览器的代理设置,squid主机一般需要两块网卡,一块网卡连内网,一块网卡可以访问外网,内网机器设好网关为squid主机内网网卡的IP就能访问外网了。需要设置iptables的nat转发。
cache_mem 128 MB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /tmp/squid 100 16 256
mkdir /tmp/squid
chown squid:squid /tmp/squid
我收集的比较好的关于squid的资料:
wikipedia上squid条目:http://en.wikipedia.org/wiki/Squid_(software)
squid权威指南网页书中文版:http://home.arcor.de/pangj/squid/