正向代理
在作这个实验时我们先来规定,ip为172.25.254.102的虚拟机为可以上网,相当于现实生活中的正向代理商,它可以上外网。ip为172.25.254.2的主机是客户端,想让该主机通过正向代理商去连接外网。
客户主动的去访问的叫正向代理 浏览器是主动的,网页是被动的
部署代理服务
在ip为172.25.254.102的虚拟机上 先连网
ping www.qq.com ##ping的通可以上网
yum install squid -y ##下载squid 代理服务软件
rpm -qc squid ##可以查看squid服务的配置文件
vim /etc/squid/squid.conf 编辑配置文件
56 http_access allow all ##允许所有的物理机使用该代理
62 cache_dir ufs /var/spool/squid 100 16 256 ##打开缓存目录端口
systemctl restart squid
systemctl stop firewalld
配置文件中
100 | 缓存量为100M 超过后新产生的数据会将之前的数据覆盖 |
16 | 16个1级目录 |
256 | 256个2级目录 |
在ip为172.25.254.2的主机上
浏览器中:
点击三条杠 里面有Perferences选项 点击
选择 Adevanced 设置 点击Settings
设定主机的代理设置 输入代理机的ip
保存
现在在浏览器上输入www.qq.com 虽然主机没有连网 但是通过代理商我们也可以去连接外网去上网
反向代理——cdn缓存加速
我们现在举例一个现实生活中的例子来理解什么是反向代理
例如我现在西安,我现在要访问淘宝的网页,但是它的服务器在杭州,但是如果从西安经过很多次的地址转换我才能访问到是非常浪费时间的,所以在西安建立一个节点服务器,这样访问该网站时就减少了时间,同时也减轻了服务器的压力,这就是cdn缓存加速的用途即反向代理。
cdn缓存进行了三层加速 访问量 访问速度
在作实验之前我们规定 :ip为172.25.254.102的虚拟机开启apache分享网页,ip为172.25。254.202的虚拟机配置代理服务做反向代理服务器, ip为172.25.254.2的主机,通过访问代理服务器ip直接访问到作分享网页的虚拟机发布目录下的内容
在分享网页的虚拟机上编辑发布内容
systemctl start httpd ##要开启http服务
firewall-cmd --permanent --add-service=http ##防火墙设定
在反向代理服务器上:
最好在反向代理的服务器上没有http服务 因为http服务会使用80端口 squid的反向代理也需要使用80端口
vim /usr/share/doc/squid-3.3.8/squid.conf.documented ##该文件中有squid服务的其他功能编写规则
vim /etc/squid/squid.conf
56 http_access allow all
59 http_port 80 vhost vport ##更改之前的端口3128 建立一个http的虚拟80端口 设定为虚拟服务器
62 cache_dir ufs /var/spool/squid 100 16 256
cache_peer 172.25.254.102 parent 80 0 proxy-only
172.25.254.102 | 是作发布目录的主机 |
parent | 设定102虚拟机的属性为202虚拟机的父级 |
0 | 表示没有备分的另一台主机 如果202主机出现了问题 没有另一台物理机代替它工作 |
proxy-only | 表示202虚拟机只做代理缓存 |
测试:在主机中浏览器搜索作代理虚拟机的ip 可以访问到102虚拟机分享网页(如果是接着之前的正向代理实验去做的话,需要在主机的浏览器上取消对于指定代理的设定 设定为无代理)
在未设定202为代理之前访问 ip
设定为代理之后 我们先来看102下的发布内容
设定主机浏览器无需代理 恢复之前的
主机浏览器再次访问202
实验结束
轮循调度机制
缓解web服务器的压力
在反向代理服务器:
v
im /etc/quid/quid.conf
56 http_access allow all
59 http_port 80 vhost vport
62 cache_dir ufs /var/spool/squid 100 16 256
cache_peer 172.25.254.102 parent 80 0 proxy-only round-robin originserver name=web1
cache_peer 172.25.254.1 parent 80 0 proxy-only round-robin originserver name=web2
cache_peer_domain www.westos.com web1 web2 ##声明web1 web2 服务器轮循做域名www.westos.com 的调度
systemctl restart squid
vim /etc/hosts
172.25.254.202 www.westos.com
originserver | 标识此为web服务器 |
name | 服务器名称 |
round-robin | 表示采用轮循调度(负载均衡) |
weight | 权重 后面的数字表示访问该网址时对应服务器提供的服务次数 例如等于2时提供2次服务后换下一台服务器提供服务 不设定一般默认为1 |
反向代理服务器编辑配置文件
编辑本地解析
1号主机发布内容为hello! 102主机发布目录内容为hello linux
我们在真机上访问服务的域名 点击多出现不同的内容
若将202虚拟机的权重设定为2时 开始的前两次服务由202虚拟机提供服务第三次由1号虚拟机提供服务 ,第四次再由202虚拟机提供服务,以此循环