Linux系统中的正向代理和反向代理(CDN)
正向代理:
正向代理(forward proxy),是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理
正向代理的作用:
- 访问原来无法访问的资源
- 用作缓存,加速访问速度
- 对客户端访问授权,上网进行认证
- 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
实验环境:
- 真机:172.25.254.148
- apache主机:172.25.254.223
- squid主机:172.25.254.123
开始实验:
@真机(148)PING一下www.baidu.com:(可以看到ping通了):
@给squid主机配置网络:(设置IP 子网掩码 网关 以及DNS域名解析)
重启网络:(systemctl restart network):
ping www.baidu.com:(squid主机可以ping通百度)
yum install squid -y
更改配置文件:
修改56 59 62行
其中
/var/spool/squid 表示缓存目录
16 表示有16个一级目录
256 表示有256个二级目录
100 表示缓存大小不能超过100M
@关闭squid主机 防火墙
@关闭apache服务器 防火墙:
@在squid主机里:(可以看到重启squid服务后出现了 16个 一级目录!)
进入一个00目录可以看到 其下有256个 二级目录!:
测试:
@在 apache服务端, 是不能ping通 www.baidu.com的:
进入apache服务器,登录其浏览器:
点击顺序依次: Edit->preferences->Advanced->Network->settings
选择Advanced:
选择Network : Settings:
选择Manual proxy confirguration 手动输入 我们的 squid主机ID 及 接口3128 (作为代理)
这是完毕 OK:
然后在浏览器输入www.baidu.com:(发现可以浏览百度主页!)
关闭刚才设定的代理:
输入www.baidu.com又不能查看了:
这就是正向代理!
########反向代理#############
反向代理:
反向代理(Reverse Proxy),是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器
反向代理的作用:
- 负载均衡:将用户的请求转交代理服务器处理
- 对客户端隐藏服务器的信息
- 缓存
- CDN技术,Nginx
开始实验(还原实验环境,即刚才的正向代理的设定得复原):
更改配置文件:(vim /etc/squid/squid.conf ):(与正向代理不同的是59-60两行内容)
其中:
vhost 表示虚拟主机
vport 表示虚拟端口
parent 表示172.25.254.223(apache服务器IP)是它的父级目录
80 表示访问父级目录的80端口
0 表示没有没有备用机
proxy-only 表示只做代理
@重启squid服务:
@在真机浏览器中输入 apache服务器的IP:
@在真机浏览器输入squid服务器的IP:
可以看到显示的是172.25.254.223(apache主机ip)/var/www/html中默认发布文件中的内容
说明反向代理成功!!!
###轮巡代理#####
进入squid主机:
编写配置文件:/etc/squid/squid.conf
其中60 61 62为我们要编写的内容! 我们将真机 也作为一个httpd服务端使用;
并在真机端写如下文件内容:
重启squid服务器的 squid服务:
@@@@进入真机浏览器测试:
输入www.westos.com:
刷新一次页面:
而且我们还可以加入权重 (web1 内容出现几次,web2出现几次这种)
比如:(weight=2 表示 web1内容出现两次 web1出现一次)
OVER!