简介
Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议,和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
实现功能:接受来自人们需要下载的目标的请求并适当地处理这些请求,也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器并向这个页面发出请求,然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。
当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议,但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。
前期准备
desktop-172.25.70.10 | 代理 |
server-172.25.70.200 | 客户端 |
真机-172.25.70.250 | 服务端 |
正向代理
客户端无法直接连接Internet,可以通过代理服务器(一个跳板机),代理访问外部资源,返回客户端需要的数据
真机是服务端,server是客户端,desktop充当中间人,负责转发数据,对双方的数据不做任何处理。
真机
firewall-cmd --add-masquerade 开启伪装功能
desktop
设置网关为真机IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAT=172.25.70.250
systemctl restart network
route -n
vim /etc/reslov.conf
nameserver 114.114.114.114
ping 114.114.114.114
ping www.baidu.com 测试是否可以上网
部署squid
yum install squid -y 安装squid
firewall-cmd --add-masquerade 开启路由功能转发功能
firewall-cmd --list-all
开启路由功能
vim /etc/squid/squid.conf
取消62行注释
cache_dir utf /var/spool/squid 100 16 256
systemctl start squid 开启squid服务
systemctl enable squid 设置squid服务是开机启动
netatat -antlupe | grep squid 查看squid使用的端口是3128端口
rpm -qc squid
server
终端测试
ping www.baidu.com
浏览器测试(需要在浏览器上设置代理)
反向代理
CDN的全称是Content Delivery Network,即内容分发网络。
CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,
使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
真机是服务端,server是客户端,desktop充当中间人,负责转发数据。与正向代理不同的是,desktop相当于真机主动设置的前卫,替真机过滤数据,从而提供一定的保护。而server以为自己访问的是真机,并不知道desktop的存在。
真机
开启http服务
yum install -y httpd
vim /var/www/htmlindex.html编辑发布文件
<h1>真机</h1>
systemctl start httpd
firewall-cmd --premanent --add-service=httpd
desktop
vim /etc/squid/squid.conf 编辑squid代理的配置文件,
httpd_port 80 vhost vport 利用80端口访问apache服务器资源,写入apache的虚拟主机和虚拟端口
cache_peer 172.25.70.250 parent 80 0 proxy-only
systemctl restart squid
其中 IP为真机的IP
parent 225是125的父级,提供资源
80 apache服务
0 此台代理服务器没有备用(合作伙伴)
proxy-only 只作代理服务器
server
访问代理时,显示的信息是服务端的发布信息
负载均衡
真机和server作为真实服务器,desktop作为前端的代理
真机
yum install -y httpd
vim /var/www/htmlindex.html编辑发布文件
<h1>真机</h1>
systemctl start httpd
firewall-cmd --premanent --add-service=httpd
systemctl stop firewalld 或者关闭防火墙
desktop
yum install squid -y 安装squid
firewall-cmd --add-masquerade 开启路由功能转发功能
firewall-cmd --list-all
开启路由功能
vim /etc/squid/squid.conf
http_access allow all
http_port 80 vhost vport
cache_peer 172.25.70.200 parent 80 0 proxy-only no-query round-robin originserver name=web1
cache_peer 172.25.70.250 parent 80 0 proxy-only no-query round-robin originserver name=web2 weight=2
cache_peer_domain web1 web2 www.westos.com
systemctl start squid 开启squid服务
systemctl enable squid 设置squid服务是开机启动
netatat -antlupe | grep squid 查看squid使用的端口是3128端口
rpm -qc squid
server
yum install -y httpd
vim /var/www/htmlindex.html编辑发布文件
<h1>真机</h1>
systemctl start httpd
firewall-cmd --premanent --add-service=httpd
systemctl stop firewalld 或者关闭防火墙
测试