linux——正向代理和反向代理

一、相关概念

1.什么是代理服务器

代理服务器(Proxy Server)的功能是代理网络用户去取得网络信息。形象地说,它是网络信息的中转站,是个人网络和Internet服务商之间的中间代理机构,负责转发合法的网络信息,对转发进行控制和登记。
代理服务器作为连接Internet与Intranet的桥梁,在实际应用中发挥着极其重要的作用,它可用于多个目的,最基本的功能是连接,此外还包括安全性、缓存、内容过滤、访问控制管理等功能。更重要的是,代理服务器是Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层。

2.为什么要用代理服务器
  1. 提高防问速度,降低费用
      由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门网站能明显提高访问速度。

  2. 防火墙作用
      由于所有的客户机请求都必须通过代理服务器访问远程站点,因此可以在代理服务器上设限,过滤掉某些不安全信息。同时正向代理中上网者可以隐藏自己的IP,免受攻击。

  3. 突破访问限制
      互联网上有许多开发的代理服务器,客户机在访问受限时,可通过不受限的代理服务器访问目标站点,通俗说,我们使用的翻墙浏览器就是利用了代理服务器,可以直接访问外网。

3.代理所需软件

问题导入:

比如说,我是陕西人,当陕西这么多人要访问位于深圳的腾讯服务器时,是每个人都从深圳的服务器上拿数据吗?还是有别的途径?设想一下,如果每人每次访问腾讯的服务器,都是从位于深圳总部的服务器上拿数据,来回路上要经过多少网关,多少路由器,那么时间的损耗肯定是巨大的问题,更不说服务器工作量有多大。

此时,squid站出来了,他说,我来帮你解决。
Squid是什么呢?

百度的定义:Squid是一种用来缓冲Internet数据的软件。如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器,并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次 有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。
那么,对应到刚才那个例子,就是在陕西这里在新建一个服务器A,客户通过,这个服务器,向深圳的服务器B作出请求,当A将B中的数据拿过来给客户时,A服务器也备份一份,放到缓存中,当下一个用户,提出同样的请求时,A就不必再向B作出请求,A就可以直接将自己缓存中的数据给客户。A和B之间通过vpn(虚拟专用共享网络)相连,以保证其传输速率。

二、正向代理

1.概念

正向代理(forward proxy),是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理

2.正向代理的应用

(1).访问原来无法访问的资源
(2).用作缓存,加速访问速度
(3).对客户端访问授权,上网进行认证
(4).代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

3.实验步骤

真机:172.25.254.31
apache主机:172.25.254.131
squid主机:172.25.254.231

1.在真实主机上连上wifi,让主机可以ping通百度,并开启路由功能

在这里插入图片描述

在这里插入图片描述

2.在squid主机中配置网络
添加网关(真机ip)和dns
在这里插入图片描述

重启网络

systemctl restart network

测试:squid主机可以ping通百度
在这里插入图片描述

3.在squid主机中安装squid服务

在这里插入图片描述

4.修改squid主机的squid配置文件

在这里插入图片描述

第56行:http_access allow all
第59行:http_port 3128
第62行:取消注释

在这里插入图片描述

/var/spool/squid  表示缓存目录
16    表示有16个一级目录
256   表示有256个二级目录
100   表示缓存大小不能超过100M

5.将squid主机的火墙关掉

在这里插入图片描述

6.关掉apache主机的火墙

注意:这里的apache主机上装有http和https,用于测试就不再赘述(详情可看文章:apache的部署)

在这里插入图片描述

7.重启服务后会看到/var/spool/squid目录下,有16个一级目录,256个二级目录

在这里插入图片描述

在这里插入图片描述

测试:

apache主机不能ping通网络

在这里插入图片描述

在apache主机浏览器中中Edit->preferences->Advanced->Network->settings

在这里插入图片描述
手动添加代理服务器,并将端口设置为3128
注意:此处的ip:172.25.254.231为squid主机的ip

在这里插入图片描述

在浏览器中输入百度网址,则可以看到百度的页面,说明正向代理成功(虽然不能ping通百度,但是却可以得到百度的缓存页面)

在这里插入图片描述
去掉代理,则再输入百度网址,就不能访问了

在这里插入图片描述

在这里插入图片描述

三、反向代理

1.概念

反向代理(Reverse Proxy),是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器

2.反向代理的应用

(1)负载均衡:将用户的请求转交代理服务器处理
(2)对客户端隐藏服务器的信息
(3)缓存
(4)CDN技术,Nginx

3.实验步骤

注意:在做这个实验之前要取消正向代理的浏览器设定

1.在squid中编辑squid配置文件

在这里插入图片描述

在这里插入图片描述

vhost     表示虚拟主机
vport    表示虚拟端口
parent    表示172.25.254.131是它的父级目录
80     表示访问父级目录的80端口
0      表示没有没有备用机
proxy-only  表示只做代理

2.重启服务

systemctl restart squid

3.修改真机解析文件中的ip为squid主机的ip

在这里插入图片描述

在这里插入图片描述

4.测试:

在真机浏览器中,输入172.25.254.131,可以看到相应发布文件内容

在这里插入图片描述

在真机浏览器中,输入172.25.254.231(squid主机ip),显示172.25.254.131(apache主机ip)/var/www/html中默认发布文件中的内容
说明反向代理成功

在这里插入图片描述

四、轮询代理

1.在squid中编辑squid配置文件

在这里插入图片描述

这里需要两台配置好apache的主机,ip分别为:
172.25.254.131
172.25.254.130

在这里插入图片描述

2.重启服务

在这里插入图片描述

3.测试:
在真机中输入www.westos.com,显示172.25.254.131主机/var/www/html中默认发布文件中的内容
在这里插入图片描述

刷新一次页面,就会显示172.25.254.130主机/var/www/html中默认发布文件中的内容
在这里插入图片描述

4.我们还可以添加权重系数weight=2,表示访问两次172.25.254.131主机,再访问一次172.25.254.130主机

在这里插入图片描述

五、总结

正向代理和反向代理的区别
代理对象不同

正向代理是服务于客户端的,客户端请求该服务器去访问目标服务器。
反向代理是服务于服务器的,服务器设置代理服务器来处理客户的访问。

用途不同

正向代理,为在防火墙内的局域网客户端提供访问Internet的途径。
反向代理,将防火墙后面的服务器提供给Internet访问。

安全性不同

正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此必须采取安全措施以确保仅为授权的客户端提供服务。
反向代理都对外都是透明的,访问者并不知道自己访问的是哪一个代理 。
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值