CentOS安装squid代理服务器

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转发。

四、设置缓存
/var/spool/squid/为squid的默认缓存文件放置目录。

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

参考资料:
http://296237168.blog.51cto.com/2789451/576809
http://blog.chinaunix.net/uid-25562227-id-3032917.html
http://www.cnblogs.com/captain_jack/archive/2010/09/27/1836803.html