正向代理、反向代理以及CDN

一、正向代理

正向代理指的是位于客户端和服务器之间的一个代理服务器,一般当客户端无法直接跟服务端发起请求时,就需要代理服务器。正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。

比如你现在缺钱,想找马云爸爸去借钱,可想而知人家可能鸟都不鸟你,到最后碰一鼻子灰借不到钱。不过你认识你家隔壁老王,而老王认识马云同志,而且 关系还很好。这时候你托老王去找马云借钱,当然这事最后成了,你从马云那里借到了500万!这时候马云并不知道钱是你借的,只知道这钱是老王借的。最后由 老王把钱转交给你。在这里,老王就充当了一个重要的角色:代理。

此时的代理,就是我们常说的正向代理。代理客户端去请求服务器,隐藏了真实 客户端,服务器并不知道真实的客户端是谁。正向代理应用最广泛的莫过于现在的某些“科学上网工具”,你访问不了谷歌、Facebook的时候,你可以在国 外搭建一台代理服务器,代理你访问,代理服务器再把请求到的数据转交给你,你就可以看到内容了。

配置正向代理服务:

以server作为代理端,desktop作为客户端。使server可以上网,但desktop不能上网,当然也就不能访问百度服务器。目的是为了desktop访问代理端server,然后代理端server从百度服务器取数据给desktop,当然desktop还是不能上网,只是可以借助代理端server去访问百度的服务器。

1.代理端:配置网卡接口文件,确保代理端可以上网
vim /etc/sysconfig/network-scripts/ifcfg-eth0

systemctl restart network   重启网络


2.yum install squid.x86_64 -y    安装代理软件
3.vim /etc/squid/squid.conf   修改配置文件56行deny all 为allow all   去掉62行的#  59行的端口号为客户端服务,客户端访问时需要此端口


4.systemctl stop firewalld   关闭火墙
5.systemctl start squid  开启代理服务


测试:
客户端:进入浏览器,访问www.baidu.com   不能访问,然后点击左上放的edit,点击prefrence ,点击最上方的Advance,点击network,点击setting 选择Manual proxy configuration    设置http proxy:192.168.1.120   port为3128,再次访问www.baidu.com

此时可以访问百度的服务器,但是依然ping不通百度服务器

二、反向代理

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

比如你现在很无聊,想找人聊天,这时候你拨通了联通客服10010电话,联通的总机可能随机给你分配一个闲置的客服给你接通。这时候你如愿以偿的和客服聊了起来,问了问她目前有没有结婚、有没有对象、家住哪里、她的微信号、她的手机号。。。

此时联通总机充当的角色就是反向代理,你只知道和客服接通并聊了起来,具体为什么会接通这个客服MM,怎么接通的,你并不知道。

反 向代理隐藏了真正的服务端,就像你每天使用百度的时候,只知道敲打www.baidu.com就可以打开百度搜索页面,但背后成千上万台百度服务器具体是 哪一台为我们服务的,我们并不知道。我们只知道这个代理服务器,它会把我们的请求转发到真实为我们服务的那台服务器那里去。

二、配置反向代理服务

这里的代理端为220,服务器为120,客户端为20

代理端:
1.vim /etc/squid/squid.conf
在正向代理的基础上修改配置文件(59 60代表行号)
59 http_port 80  vhost vport  当浏览器访问192.168.1.220时,默认访问的是80端口,但是代理端并没有安装http,因此需要使用别人的80端口,vhost表示虚拟主机,vport表示虚拟端口
60 cache_peer 192.168.1.120 parent 80 0 proxy-only   当访问220时,220会去向120的80端口要数据,proxy-only表示只做代理,具体格式可以去看/usr/share/doc/squid-3.3.8/squid.conf.documented


2.systemctl restart squid
测试:
客户端192.168.1.20:vim /etc/hosts   
192.168.1.220 www.westos.com
在客户端浏览器输入www.westos.com,系统会去找220,但是220并没有装http,220只是一个代理,它会去120要数据

test其实是120的发布文件内容,只是220代理客户端192.168.1.20去访问了120

三、CDN

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置反向代理节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度

用户在浏览网站的时候,CDN会选择一个离用户最近的CDN边缘节点来响应用户的请求,这样西安用户的请求就不会千里迢迢跑到深圳腾讯机房的服务器(假设源站部署在深圳腾讯机房)上了。

CDN的优势

  • (1)CDN节点解决了跨运营商和跨地域访问的问题,访问延时大大降低;

  • (2)大部分请求在CDN边缘节点完成,CDN起到了分流作用,减轻了源站的负载。

而且CDN的优势远不止如此,它还可以负载均衡,起到多重加速的作用

配置CDN
代理端:
1.vim /etc/squid/squid.conf
在反向代理的基础上修改配置文件(960 61 62代表行号)
60 cache_peer 192.168.1.120 parent 80 0 proxy-only  name=web1 round-robin weight=2
61 cache_peer 192.168.1.130 parent 80 0 proxy-only  name=web2 round-robin
62 cache_peer_domain web1 web2 www.westos.com
表示当访问www.westos.com时,系统会向web1和web2即120和130的80端口要数据,起到了代理作用,round-robin表示抡循访问,weight表示比重,也就是当访问www.westos.com时,系统每三次访问中,有两次是访问120,一次访问130,这主要用于当一个服务器性能较好,另一个服务器性能较差时的平衡


2.systemctl restart squid  重启服务
测试:
vim /etc/hosts   
192.168.1.220 www.westos.com
在客户端浏览器输入www.westos.com  点击刷新,可以看到不同的内容

第一次第二次访问:

第三次访问:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值