当前位置:首页 > CN2资讯 > 正文内容

关于正向代理与反向代理反向代理和正向代理

2天前CN2资讯

今天面试过程中遇到了正向代理与反向代理的问题,回来后整理了这篇文章。

前言

说一下为什么会被问到这个问题吧,我在项目简历中有如下一段描述:

在部署方面,采用了 Nginx+Tomcat 的模式,其中 Nginx 的作用一方面是做反向代理、负载均衡,另一方面是做…

所以就勾起了面试官的…

小王呀,能说一下 Nginx 的负载均衡,以及正向代理跟反向代理有什么区别吗?

相信负载均衡大家应该都有了解,在写正反代理之前再来回顾一下吧。

负载均衡

1、负载均衡使用场景

举一个例子,假如现在有两台服务器 A、B 同时为用户提供服务,如果没有采用负载均衡的话,可能会出现这么个情况,A 占访问的 90%,B 占访问的 10%,或者是 B 占访问的 80%,A 占访问的 20%,总之用户具体访问哪个服务是不确定的,且不可控。所以这种情况的弊端就很明显了,显然我们是希望能够将用户的访问均衡的分配到这两台服务器上的,这才是负载均衡最大的意义。

负载均衡:将客户端的请求按照一定的规则分配到一群服务器上,并将处理结果返回给相应的客户端。

2、负载均衡实现方式

因为是基于 Nginx 的问题,所以就直接来看 Nginx 提供的五种实现负载均衡的方式:

2.1、轮询(默认)

这是 Nginx 默认采用的方式,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器宕掉,能自动剔除;举例:服务器处理请求顺序:ABABABABA,假如 A 挂了,则全部成了 BBBBBBB

upstream backserver {
    server 192.168.31.14;
    server 192.168.31.15;
}
2.2、指定权重

指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。权重越大表示被访问的优先级就越高,如下服务器请求处理顺序:ABBABBABBABB…

upstream backserver {
    server 192.168.31.14 weight=1;
    server 192.168.31.15 weight=2;
}
2.3、IP绑定 ip_hash

每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。怎么讲?就是你如果访问了 A 服务,那么在未断开连接之前就一直保持着跟 A 的通讯,所以无论你在应用的哪个模块上总是保持着一台服务器的连接,这样就不会有分布式 session 的问题了。

upstream backserver {
    ip_hash;
    server 192.168.31.14:88;
    server 192.168.31.15:80;
}
2.4、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream backserver {
    server 192.168.31.14:88;
    server 192.168.31.14:80;
    fair;
}
2.5、url_hash(第三方)

按访问 url 的 hash 结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。这个类似于上边提到的 ip_hash 的方式。

upstream backserver {
    server squid1:3128;
    server squid2:3128;
    hash $request_uri;
    hash_method crc32;
}

3、负载均衡的作用

两点比较重要的作用总结:

  • 解决服务器并发压力,提高应用处理性能。
  • 提供故障转移,实现高可用。
  • 正向代理与反向代理

    终于到今天的主角了。关于代理,相信大家可能会有中间人这种概念,我们来看一下关于正向代理、反向代理到底指的是什么。

    正向代理

    正向代理是用在客户端的。我们来举一个例子,比如我们要访问谷歌等国外网站,我们需要使用梯子(V*N),挂上代理,此时,我们在百度上输入 IP 可能就会出现下图的情况:

    也就是说,代理改变了浏览器,帮我们本地实现了转发,浏览器想访问谷歌,首先要访问梯子代理的地址,然后梯子帮我们完成请求转发,最后将请求返回给用户显示。

    反向代理

    反向代理是用在服务器端的。服务器端对外暴露的是一个虚拟IP,用户请求到该 IP 后,会转发到多个后端处理器中的一台来处理该具体请求。大型网站都有DNS(域名解析服务器),load balance(负载均衡器)等。

    总结

    正向代理与反向代理,两者的作用点不同,正向代理是用在客户端的,反向代理是用在服务器端的。
    正向代理帮我们实现了内网访问外网,而反向代理则实现了外网访问内网。

    内网访问外网:政府机关等内网通过挂载V*N代理访问外网,或者咱平时挂梯子访问谷歌。
    外网访问内网:nginx对外只暴露一个端口,而内部代理2个或2个以上的端口应用。

    关于负载均衡,主要作用就是帮助我们减轻服务器并发压力,提供故障转移,实现高可用,需要注意的是负载均衡只有在大于 2 台及以上才有意义。

    我创建了一个java相关的公众号,用来记录自己的学习之路,感兴趣的小伙伴可以关注一下微信公众号哈:niceyoo

      你可能想看:

      扫描二维码推送至手机访问。

      版权声明:本文由皇冠云发布,如需转载请注明出处。

      本文链接:https://www.idchg.com/info/24009.html

      分享给朋友:

      “关于正向代理与反向代理反向代理和正向代理” 的相关文章

      RackNerd优惠活动详解:如何享受高性价比虚拟主机和VPS折扣

      RackNerd是一家在2019年成立的美国主机商。虽然成立时间不久,它却迅速在市场上崭露头角,赢得了许多VPS用户的青睐。公司的数据中心分别位于洛杉矶、圣何塞、西雅图和纽约等地,这些地理位置的选择让它的服务在各个区域都有稳定的覆盖。从我个人的体验来说,RackNerd的性价比非常高,尤其在价格和服...

      bwh1:搬瓦工的高效VPS管理与使用技巧

      bwh1 概述 提到 bwh1,很多人第一时间就想到搬瓦工(BandwagonHost)。bwh1 正是搬瓦工的官网域名之一,深受用户喜爱。它不仅是一个简单的链接,更是通向高效 VPS 管理的窗口。通过这个网站,用户能够方便地访问各种服务,比如 VPS 购买、管理和支持。对于追求网络稳定性和速度的用...

      VPS优惠活动解析:如何选择最划算的虚拟专用服务器方案

      在当今互联网环境中,VPS(虚拟专用服务器)为企业和个人用户提供了灵活、高效的解决方案。随着云计算的普及,VPS逐渐成为许多用户的首选。不管是建站、开发、还是日常的数据处理,选择一款合适的VPS至关重要。而在不同的VPS服务提供商中,优惠活动往往能让用户以更实惠的价格体验高质量的服务。 什么是VPS...

      BBR对国内网站的实际作用与应用效果分析

      BBR(Bottleneck Bandwidth and Round-trip propagation time)算法是由Google推出的一种TCP拥塞控制算法。它的设计初衷是为了优化网络连接的传输速率和稳定性,尤其是在面临高延迟和波动网络条件时表现优异。可能的很多朋友会问,BBR到底是个什么东西...

      GoDaddy虚拟主机全面指南:轻松搭建您理想的网站

      GoDaddy虚拟主机概述 提到GoDaddy,很多人首先会想到它作为域名注册商的地位。但是,GoDaddy不仅限于此,提供虚拟主机服务的实力也不容小觑。对于想要在网上建立个人博客、企业站点或者电子商务平台的朋友来说,GoDaddy的虚拟主机服务是一个值得考虑的选项。它的多样性和可靠性,吸引了不少新...

      菲律宾用户如何通过VPS提升TikTok访问速度

      在菲律宾使用VPS访问TikTok,这个话题对很多喜欢在TikTok上进行电商活动或内容创作的人来说非常重要。首先,我想谈谈VPS的概念以及它的优势。VPS,全称是虚拟专用服务器,它提供了一种比共享主机更为灵活和高效的解决方案。对于菲律宾的用户来说,通过使用VPS,可以在一定程度上绕过地区限制,更流...