• 初识Nginx


     Nginx 作为业内最常用的代理服务器,较为详细地记录了用户的访问数据,而且在分布式部署性能优化方面也发挥了积极的作用,Nginx 是不得不提的一个中间件。

    Nginx 重要的两个概念:

    代理:

      正向代理的特点是你非常清楚地知道你要去哪儿,访问什么服务器,但服务器并不关心你的出发地是哪里,它只知道你从哪个代理服务器过来。

      反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。

      反向代理和正向代理的区别就是:正向代理代理客户端,反向代理代理服务器。

    负载均衡
      但是随着用户体量的上升,一台服务器并不能支撑现有用户的访问,那你就会考虑使用两台或者多台服务器

      1.轮询:

        也就是使用平均分配的方式,将每个请求依次分配到配置的后端服务器上。除非有服务宕机,才会停止分发。代码如下:

    upstream localhost {
    
    //分发到各应用服务
    
          server  127.0.0.1:7070;
    
          server  127.0.0.1:7071;
    
        }
    
        server{
    
    //Nginx核心监听端口
    
            listen 8012;
    
            server_name localhost;
    
            location / {
    
                    proxy_pass         http://localhost;
    
                    proxy_set_header   Host             $host;
    
                    proxy_set_header   X-Real-IP        $remote_addr;
    
                    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    
            }
    
    }

      2.权重

        权重即配置轮询的比重,在真实的互联网场景下,很多服务器上都会配置多个应用,这样会导致每台服务器的资源占用不一致,所以在分布式部署配置下也需要注意这一点

        一:相对空闲的机器可以多配置访问比例。

        二:比较繁忙的机器可以少配置一些。

        其中 ip1、ip2 以及 port 需要配置你实际的部署 ip 和 port。

      

         upstream test {
    
             server ip1:8080 weight=9;
    
             server ip2:8081 weight=1;
    
    }

      3.ip_hash

        但上面两种配置方式在电商场景下有个很常见的问题,比如你登录了一个网站,登录信息已经保存到 a 机器,但当你做后续操作时的请求会到 b 机器,那么就获取不到你原    来登录的信息,此时你就需要重新登录了。这样的情况是用户肯定不能接受的,ip_hash 模式就可以很好地解决这个问题,让每次访问能基于同一用户访问固定的服务器。  

        ip_hash 模式配置示例如下:

      
        upstream test {
    
        ip_hash;
    
        server localhost:8080;
    
        server localhost:8081;
    
    }




      

  • 相关阅读:
    西游之路——python全栈——Django之ORM操作
    西游之路——python全栈——django中orm的使用(1)
    西游之路——python全栈——django中orm的使用(2)
    西游之路——python全栈——Django中模型类中Meta元对象了解
    西游之路——python全栈——自定义用户认证
    西游之路——python全栈——CRM项目之Kingadmin开发
    记录表
    flask 引入redis 替换原生session存储session(flask-session)
    综合
    AD域(活动目录) bat脚本探究
  • 原文地址:https://www.cnblogs.com/anhao-world/p/14963021.html
Copyright © 2020-2023  润新知