squid的介绍
1、Squid是基于Unix的代理服务器(proxy server),它缓存比起点源点更接近请求者的互联网内容。Squid支持缓存多种不同的网络对象,包括那些通过HTTP和FTP访问的人。缓存频繁要求网页、媒体文件和其它加速回答时间并减少带宽堵塞的内容。
2、Squid代理服务器(Squid proxy server)一般和原始文件一起安装在单独服务器而不是网络服务器上。Squid通过追踪网络中的对象运用起作用。Squid最初担当中介,仅仅是把客户要求传递到服务器并存储要求对象的拷贝。如果同一个客户或同一批客户在要求还在Squid缓存(cache)时要求相同的对象,Squid就可以立刻服务,加速下载并保存带宽。
3、squid是一种用来缓存Internet数据的软件。接受来自人们需要下载的目标(object)的请求并适当的处理这些请求。也就是说,如果一个人想下载一web界面,他请求squid为他取得这个页面。squid随之连接到远程服务器并向这个页面发出请求。然后,squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时, squid可以简单的从磁盘中读到它,那样数据会立即传输到客户端。
squid代理的作用
通过缓存的方式为用户提供Web访问加速
对用户的Web访问进行过滤控制
squid 正向代理
客户主动设定代理服务器的信息
实验环境: 两台主机
1.在不能上网的虚拟机(客户端)
设定虚拟机网卡配置:
DEVICE=ens3
ONBOOT=yes
BOOTPRAOTO=none
IPADDR=172.25.254.240
PREFIX=24
在客户端上下载火狐,进入网页设置preferences
NetWork Proxy 选择代理Manual proxy configuration
172.25.254.130 端口:3128
在此虚拟机的浏览器里面设置代理主机的信息,使它在依然ping不通百度的情况下,但是可以上网,
在浏览器里面加入代理服务器的信息,浏览器上明确指名代理服务器的IP地址和端口号(3128端口)
客户端上网时,每次都把请求发送给代理服务器处理,代理服务器根据请求确定是否连接到远程web服务器获取数据。如果在本地缓冲区有目标文件,则直接将文件传给用户即可。如果没有的话则先取回文件,先在本地保存一份缓冲,然后将文件发送给客户端浏览器。
2.在可以上网的虚拟机(服务器)
DEVICE=ens3
ONBOOT=yes
BOOTPROTO=none
PREFIX=24
IPADDR=172.25.254.140
GATEWAY=172.25.254.250
DNS1=114.114.114.114
操作:
在服务器中
dnf install squid -y
vim /etc/squid/squid.conf
59 http_access allow all
65 cache_dir ufs /var/spool/squid 100 16 256
如图:
systemctl restart squid
firewall-cmd --permanent --add-port=3128/tcp
firewall-cmd --reload
测试:
在客户端中
ping www.baidu.com 发现网络不通
在浏览器中访问www.baidu.com可以
其实显示出来的网页是代理提前加载的
squid反向代理
企业服务器自己主动设定代理服务器的信息
实验环境:
squid反向代理也叫做cdn加速,利用squid代理服务器,此时属于反向代理
(此实验需要三台主机,自己的真机作为客户端,desktop虚拟机作为代理服务器,server虚拟机作为服务器(有apache服务))
172.25.254.240 ##Apache服务器
172.25.254.140 ##squid,没有数据,负责从真实服务器上缓存客户所需要的数据
在代理服务器:
vim /etc/squid/squid.conf
http_port 80 vhost vport ##vhost 支持虚拟域名 vport 支持虚拟端口
#当172.25.254.140的80端口被访问会从172.25.254.240的80端口缓存数据
cache_peer 172.25.254.240 parent 80 0 proxy-only
火墙通过httpd:
firewall-cmd --permanent --add-service=squid
firewall-cmd --reload
firewall-cmd --list-all
systemctl restart squid 重启squid代理服务
服务器:
dnf install httpd -y 下载httpd服务
火墙允许httpd服务:
firewall-cmd --permanent --add-service=htttp
firewall-cmd --reload
firewall-cmd --list-all
测试:
真机,即客户端访问代理服务器firefox http:/172.25.254.140(代理服务器)
访问看到的是172.25.254.240上的数据(服务器)