Squid缓存服务器

一.基本概念

Squid是一种用来缓存Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。

二.Squid正向代理

正向代理的原理就类似于v*n服务,假如我的IP上不了外网,而其他地区有台主机可以登陆外网,那台主机就可以当成我的代理,让我通过那台主机去上外网。

在服务端提供代理,首先保证服务端虚拟机能够上网

1.yum install squid.x86_64  -y    ##安装软件
2.rpm -qc squid                   ##查找配置文件

Squid缓存服务器Squid缓存服务器

3.systemctl start squid
4.vim /etc/squid/squid.conf                     ##更改主配置文件

56 http_access allow all                        ##允许所有网络入口
59 http_port 3128                               ##提供代理的默认端口
62 cache_dir ufs /var/spool/squid 100 16 256    ##缓存空间100M,16个一级目录,每个一级目录有256个二级目录

Squid缓存服务器

5.systemctl restart squid
6.systemctl stop  firewalld

Squid缓存服务器
在客户端设置代理
在浏览器
点击Preferences
Squid缓存服务器
选择Advanced,点击Network,点击Settings
Squid缓存服务器
点击Manaul proxy configuration,添加代理主机ip及端口,设置完成后点击ok
Squid缓存服务器
测试
在客户端的浏览器输入域名
设置完成后客户端便可通过代理主机上网,但客户端本身是无法上网的,只是通过代理的缓存目录/var/spool/squid浏览网页信息
Squid缓存服务器
Squid缓存服务器

三.Squid反向代理

反向代理的原理就是类似于在西安访问www.qq.com,其实访问的不是深圳的www.qq.com的主服务器,而是腾讯在西安的代理服务器,内容是和主服务器一样的,那么西安的代理服务器其实是去深圳取的数据,并且缓存在了西安的那台主机上。这是一种加速机制,因为我所在的地方距离西安的腾讯服务器的路由跳数更少一些,同时也缓解了主服务器的压力。
在服务端提供代理
服务端主机为220

1.yum install squid.x86_64  -y
2.systemctl start squid
3.vim /etc/squid/squid.conf
56 http_access allow all
59 http_port 80  vhost  vport                        ##代理端口为虚拟主机的虚拟端口80
60 cache_peer  172.25.20.120 parent 80 0 proxy-only  ##通过80端口访问120主机,parent真正的服务器,proxy-only只提供代理  
62 cache_dir ufs /var/spool/squid 100 16 256

Squid缓存服务器

4.systemctl restart squid
systemctl stop  firewalld

在120主机上建立http默认发布文件
Squid缓存服务器
测试
在其他主机上访问220,看到的是120主机的内容
Squid缓存服务器

四.Squid实现轮循

轮循就是两台服务器交替为客户端提供缓存。
服务端主机ip为220

vim /etc/squid/squid.conf

60 cache_peer 172.25.20.120  parent  80 0 proxy-only name=web1 round-robin originserver weight=2 ##weight权重
61 cache_peer 172.25.20.250  parent  80 0 proxy-only name=web2 round-robin originserver
62 cache_peer_domain  web1 web2 www.hello.com

Squid缓存服务器

systemctl restart squid

测试
测试前要保证 120和250两台主机发布了 www.hello.com 站点
在测试主机上

vim /etc/hosts
172.25.20.220  www.hello.com 该站点指定的发布主机为 220即squid服务端

Squid缓存服务器
在浏览器 www.hello.com
发现120和250中的内容都能看到,其中120主机的需要刷新两次
Squid缓存服务器
Squid缓存服务器

企业常用的网络框架
Linux + Apache + Mysql + PHP = LAMP
Linux + Nginx + PHP/Perl/Python = LNMP