一、正向代理
- 概念
正向代理(forward proxy),是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理 - 正向代理的应用
- 访问原来无法访问的资源
- 用作缓存,加速访问速度
- 对客户端访问授权,上网进行认证
- 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
- 测试环境
- 真机:172.25.254.31
- apache主机:172.25.254.131
- squid主机:172.25.254.231
- 正向代理的实现
- 在真实主机上连上wifi,让主机可以ping通百度,并开启路由功能
- 在squid主机中配置网络
添加网关(真机ip)和dns
重启网络
测试:squid主机可以ping通百度
- 在squid主机中安装squid服务
- 修改squid主机的squid配置文件
第56行:http_access allow all
第59行:http_port 3128
第62行:取消注释
/var/spool/squid 表示缓存目录
16 表示有16个一级目录
256 表示有256个二级目录
100 表示缓存大小不能超过100M - 将squid主机的火墙关掉
- 关掉apache主机的火墙
注意:这里的apache主机上装有http和https,用于测试就不再赘述(详情可看文章:apache的部署)
- 重启服务后会看到/var/spool/squid目录下,有16个一级目录,256个二级目录
- 测试:
- apache主机不能ping通网络
- 在apache主机浏览器中中Edit->preferences->Advanced->Network->settings
- 手动添加代理服务器,并将端口设置为3128
注意:此处的ip:172.25.254.231为squid主机的ip
- 在浏览器中输入百度网址,则可以看到百度的页面,说明正向代理成功(虽然不能ping通百度,但是却可以得到百度的缓存页面)
- 去掉代理,则再输入百度网址,就不能访问了
二、反向代理
- 概念
反向代理(Reverse Proxy),是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器 - 反向代理的应用
- 负载均衡:将用户的请求转交代理服务器处理
- 对客户端隐藏服务器的信息
- 缓存
- CDN技术,Nginx
- 反向代理的实现
注意:在做这个实验之前要取消正向代理的浏览器设定
- 在squid中编辑squid配置文件
vhost 表示虚拟主机
vport 表示虚拟端口
parent 表示172.25.254.131是它的父级目录
80 表示访问父级目录的80端口
0 表示没有没有备用机
proxy-only 表示只做代理 - 重启服务
- 修改真机解析文件中的ip为squid主机的ip
- 测试:
- 在真机浏览器中,输入172.25.254.131,可以看到相应发布文件内容
- 在真机浏览器中,输入172.25.254.231(squid主机ip),显示172.25.254.131(apache主机ip)/var/www/html中默认发布文件中的内容
说明反向代理成功
- 轮询代理
- 在squid中编辑squid配置文件
这里需要两台配置好apache的主机,ip分别为:
172.25.254.131
172.25.254.130
- 重启服务
- 测试:
在真机中输入www.westos.com,显示172.25.254.131主机/var/www/html中默认发布文件中的内容
刷新一次页面,就会显示172.25.254.130主机/var/www/html中默认发布文件中的内容
- 我们还可以添加权重系数weight=2,表示访问两次172.25.254.131主机,再访问一次172.25.254.130主机
读者可自行测试,就不再赘述
三、总结
- 什么是代理服务器(Proxy Serve)
提供代理服务的电脑系统或其它类型的网络终端,代替网络用户去取得网络信息。 - 为什么使用代理服务器?
- 提高访问速度
由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门网站能明显提高访问速度。 - 防火墙作用
由于所有的客户机请求都必须通过代理服务器访问远程站点,因此可以在代理服务器上设限,过滤掉某些不安全信息。同时正向代理中上网者可以隐藏自己的IP,免受攻击。 - 突破访问限制
互联网上有许多开发的代理服务器,客户机在访问受限时,可通过不受限的代理服务器访问目标站点,通俗说,我们使用的翻墙浏览器就是利用了代理服务器,可以直接访问外网。
- 正向代理和反向代理的区别
- 代理对象不同
- 正向代理是服务于客户端的,客户端请求该服务器去访问目标服务器。
- 反向代理是服务于服务器的,服务器设置代理服务器来处理客户的访问。
- 用途不同
- 正向代理,为在防火墙内的局域网客户端提供访问Internet的途径。
- 反向代理,将防火墙后面的服务器提供给Internet访问。
- 安全性不同
- 正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此必须采取安全措施以确保仅为授权的客户端提供服务。
- 反向代理都对外都是透明的,访问者并不知道自己访问的是哪一个代理 。