Nginx知识储备 | 反向代理/负载均衡

nginx服务器有什么作用?什么叫反向代理?为什么要使用反向代理?

在这里插入图片描述
       1.背景介绍
              现在许多大型web网站都用到反向代理。除了可以防止外网对内网服务器的恶性攻击缓存以减少服务器的压力访问安全控制之外,还可以进行负载均衡,将用户请求分配给多个服务器。
              反向代理服务器Nginx,Nginx作为近年来较火的反向代理服务器,安装在目的主机端,主要用于转发客户机请求,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后面的服务器,决定哪台目标主机来处理当前请求。

       2.知识剖析
              ① 什么是代理服务器:代理服务器,客户端在发送请求时,不会直接发给主机,而是先发给代理服务器,代理服务器接受请求之后将请求分发给不同的主机,并接受主机返回的数据,存在代理服务器中的硬盘中,再发送给客户端。
              ② 使用代理服务器有什么优点:
                     (1)提高访问速度
                            由于目标主机返回的数据会存在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门站点能明显提高请求速度。
                     (2)防火墙作用
                            由于所有的客户机请求都必须通过代理服务器访问远程站点,因此可在代理服务器上设限,过滤某些不安全信息。
                     (3)通过代理服务器访问不能访问的目标站点
                            互联网上有许多开发的代理服务器,客户机可访问受限时,可通过不受限的代理服务器访问目标站点,通俗说,我们使用的翻墙浏览器就是利用了代理服务器,可直接访问外网。
              ③ 正向代理和反向代理:
                     正向代理,架设再客户机与目标机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。举例说明:就是学生从四面八方过来上学,大门只有一个,学校也只有一个,所有的学生都必须通过这个大门才能进入学校,学生好像是客户机,大门就是代理服务器,学校就是目标主机。
                     反向代理,反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器,并将从服务器上得到的结果返回给Internet请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器。举例说明:反向代理就好像是幼儿园学生放学了要回家,老师只有一个,学生家长有很多,老师领着学生将学生交给家长,这里面呢,学生就是各个客户机请求,老师是一个代理服务器,家长是各个目标主机,老师管理者各个学生,再把各个学生分发给不同的家长,这就是反向代理。

              ④ 负载均衡
              (1)为什么要使用负载均衡
                     当一台服务器的单位时间内访问量越大的时候,服务器压力会越大,当一台服务器压力大得超过自身得承受压力的时候,服务器会崩溃。为了避免服务器崩溃,让用户更好的体验,我们通常通过负载均衡的方式来分担服务器的压力。那么什么是负载均衡呢?我们可以建立很多个服务器,这些服务器组成一个服务器集群,然后当用户访问我们的网站的时候,先访问一个中间服务器,再让这个中间服务器在服务器集群中选择压力较小的服务器,然后将该访问请求引入选择的服务器。这样,用户每次的访问,都会保证服务器集群中的每个服务器的压力区域平衡,分担了服务器的压力,避免了服务器崩溃的情况。
              (2)几种负载均衡的方式
                     a、轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
                     b、weight:指定轮循几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
                     c、ip_hash:每个请求按访问ip的hash结果分配,这样每个访问固定访问一个后端服务器,可以解决session的问题。
                     d、fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配。
                     e、url_hash(第三方)

              ⑤ nginx的动静分离
                     一般由nginx处理并发的http请求,如果该请求返回的响应是静态文件(html、htm、css、js、图片等)则直接由nginx处理,如果是动态文件(jsp、jspx、do、wsd)等,则将该请求转发给Servlet容器Tomcat、Jetty、resin等进行处理。

3.常见问题

怎么实现上面说的反向代理,负载均衡和动静分离?
在nginx的安装目录下打开nginx.conf文件,在里面配置一些内容。
nginx的负载均衡是怎么达到的?
在nginx的安装目录下打开nginx.conf文件,在里面配置我们需要用到的负载均衡的方式,比如轮询,比重之类的。
正向代理一般在什么情况下使用?
正向代理一般是我们访问国外或者我们直接访问不到的地址的时候,这时候就需要一个正向代理,代理我们的服务器,然后通过正向代理向目的服务器发起请求,之后就可以访问到目的服务器了。

发布了24 篇原创文章 · 获赞 1 · 访问量 522

猜你喜欢

转载自blog.csdn.net/Kasey_L/article/details/104948900
今日推荐