squid是一种高性能的代理缓存服务器,分为正向代理和反向代理,正向代理就是翻墙,反向代理指web服务其加速,就是指如果一个人想要下载一web页面,他请求squid为他取得这个页面。squid随之连接到远程服务器并向这个页面发出请求。然后squid再把数据到客户端服务器,同时复制一份。当下一次有人需要同一个页面时,squid可以简单地从磁盘上读到它,这样数据很快就会传输到客户主机上。
一 反向代理:
客户端请求访问web服务时,dns将访问的域名解析为squid反向代理服务器的ip地址,这样客户端的url请求将被发送到反向代理服务器。如果squid反向代理服务器中缓存了该请求的资源,则将该请求直接返回给客户端,否则squid反向代理服务器将向后台web服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,给下一个情求者使用。
1 yum install squid -y
2 systemctl start squid
3 systemctl stop firewalld
4 netstat -antlpe | grep squid ###查看squid的端口###
tcp6 0 0 :::3128 :::* LISTEN 0 219934 1856/(squid-1)
5 vim /etc/squid/squid.conf
###缓存请求到的资源的存放路径以及存放的内容的大小###
56 http_access allow all ###允许所有人访问###
59 http_port 80 vhost vport ###端口为80,虚拟主机,虚拟端口##
60 cache_peer 172.25.254.212 parent 80 0 no-query originserver name=wb1 round-robin
61
62 cache_peer 172.25.254.12 parent 80 0 no-query originserver name=wb2 round-robin
63 cache_peer_domain www.westos.com wb1 wb2
###客户端发出的请求如果为www.westos.com,则squid向172.25.254.212的80端口或者172.25.254.12的80端口通过轮询的方式发送请求###
66 cache_dir ufs /var/spool/squid 100 16 256
name=wb1: ###表示cache——peer的一个别名###
80 : ###web服务器的端口###
0 : ###web服务器没有icp端口,所以设为0。如果是squid则指若该squid损坏了,不通过icp查询接替的squid,如果要查询接替的写3130##
172.25.254.12 parent ###指父节点###
172.25.254.212 parent ###指父节点###
no-query
round-robin :指squid通过轮询的方式将请求发到其中一台父节点
originserver :指名是源服务器
6 systemctl restart squid.service
测试:
在安装了squid的服务器上先进行本地解析:
vim /etc/hosts
172.25.254.112 www.westos.com
然后再在firefox输入www.westos.com,刷新的时候就会发现内容交替变化
cache_peer 172.25.254.212 parent 80 0 no-query originserver name=wb1 round-robin weight=3
cache_peer 172.25.254.12 parent 80 0 no-query originserver name=wb2 round-robin weight=1
###指访问172.25.254.212三次,再访问172.25.254.12一次,如此循环###
二 正向代理:
1 yum install squid -y
2 systemctl start squid
3 systemctl stop firewalld
4 netstat -antlpe | grep squid ###查看squid的端口###
tcp6 0 0 :::3128 :::* LISTEN 0 219934 1856/(squid-1)
5 vim /etc/squid/squid.conf
cache_dir ufs /var/spool/squid 100 16 256 ###缓存请求到的资源的存放路径以及存放的内容的大小###
6 systemctl restart squid.service ###重启服务###
客户主机上:
firefox : edit--> preferences -->
advanced --> network
--> settings : manual proxy configuration --> 写代理服务器的ip和squid端口