2018-03-03 Linux学习之Squid部署代理缓存服务

2018年3月4日14:06:37 发表评论 74 views

一、代理缓存服务

1.什么是代理缓存

顾名思义,代理缓存就是服务器将一些网页需要加载的数据提前缓存到服务器端,用户在访问网站时不需要从网站所在服务器进行加载,直接从代理缓存服务器端读取缓存数据,从而加快访问速度,缓解网站服务器压力。

2.代理方式

①正向代理:用户通过服务获取网站页面资源,基于访问控制列表(ACL)功能对用户上网进行控制。又分为标准正向代理和透明正向代理,标准指用户需要填写服务器地址和端口,否则不用代理服务,而透明则代表不需要手动填写服务器地址和端口,一般用于企业局域网中,控制内部员工上网内容和节省公司服务器宽带,下图是拓扑图:

②反向代理:多台节点主机反向缓存网站数据,加快用户访问速度。下图是拓扑图:

3.Squid服务

Squid是Linux系统中一款高性能代理服务软件,具有配置简单,效率高,功能丰富等特点,支持HTTP,FTP,SSL多种协议。

二、配置Squid服务程序

1.实验准备,两台虚拟机,一台作为Squid服务器,一台作为Squid客户端。服务器端需要两块网卡,一块为桥接模式,为链接外网,另外一块为主机模式,为配置内部局域网,另外一台客户端需要一块网卡, 主机模式即可,为跟服务器端处在一个局域网内。

2.安装Squid服务

yum install -y squid //安装Squid服务

systemctl start squid && systemctl restart squid //设置开机启动并开启服务

3.修改配置文件,/etc/squid/squid.conf,常用配置参数如下:

4.正向代理:

(1)标准正向代理

Squid服务程序启动之后,默认就可以给用户提供标准正向代理模式,只需要在客户端浏览器设置代理即可,步骤如下:

第一步
第二步
第三步

在设置好代理之后,就可以发现,采用主机模式的Windows 7也能够上外网,效果如下:

(2)ACL控制访问

在公司内部,都会限制员工网络的访问,比如上班时间不能打游戏逛淘宝等等。接下来的实验就是来实现这些功能。

①只允许特定ip的主机使用squid代理服务,其他ip的主机不允许使用。

编辑/etc/squid/squid.conf,大约在26行写入信息:

acl client src ip

http_access allow client

②禁止用户访问网址中包含指定关键词的网址

acl deny_keyword url_regex -i 关键词

http_access deny deny_keyword

③禁止用户访问特定网址

acl deny_url url_regex 网址

http_access deny dent_url

④禁止员工下载指定后缀名类型的文件

acl badfile urlpath_regex -i \.rar& \.avi&

http_access deny badfile

(3)透明正向代理

①开启NAT并设置DNS端口转发

iptables -t nat -A POSTROUTING -p udp --dport 53 -o 网卡名称 -j MASQUERADE

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

sysctl -p

②修改配置文件

在配置文件中 "http_port 3128"一句后面添加 transparent(透明的意思),将"cache_dir ufs /var/spool/squid 100 16 256"前的#号去掉。

③检查配置文件语法以及初始化

squid -k parse //检查语法

squid -z //初始化

④配置80端口转发

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-port 3128

iptables -t nat -A PREROUTING -s 192.168.31.0/24 -o 网卡名称 -j SNAT --to 桥接网卡地址

service iptables sava //保存防火墙配置

5.反向代理

修改配置文件/etc/squid/squid.conf,将"http_port 3128"注释掉,修改为:

http_port 桥接网卡ip地址:80 vhost

cache_peer 网站源服务器ip地址 parent 80 0 originserver

  • 我的微信
  • 快来和我聊天吧
  • weinxin
  • 我的QQ号
  • 快来和我交流吧
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: