zoukankan      html  css  js  c++  java
  • linux---集群架构初探(21)Nginx负载均衡

    nginx负载均衡

    使用upstream模板定义目标服务器列表,当有请求时,按照制定的规则选择一台服务器发送请求。

    实例

    lb01服务器配置文件/etc/nginx/conf.d/proxy.conf

    注:weight是一种负载均衡策略,权重。

    web01、web02配置文件/etc/nginx/conf.d/proxy.conf (web02对应的ip是172.16.1.8)

    本地hosts:192.168.1.5 www.pm.com blog.pm.com

    在浏览器中输入:www.pm.com,多次刷新,发现依次在7和8转换

       

    负载均衡策略

     常用的策略

    轮询 默认方式
    weight 权重方式
    ip_hash 依据ip方式
    least_conn 最少连接方式
    fair(第三方) 响应时间方式
    url_hash(第三方) 依据url方式

    常用的参数

    注:默认fail_timeout=10s max_fails=1

    1.轮询

    默认的匹配方式,如有两台服务器A和B,则访问顺序为ABABABABAB...

    此策略适合服务器配置相当,无状态且短平快的服务使用。

    2.权重

    weight值默认为1,权重值越高,负载的压力越大,如:

    服务器A为172.16.1.7,另一台为B,则访问顺序为ABBABBABBABB...

    此策略比较适合服务器的硬件配置差别比较大的情况

    3.ip_hash

    保证同一ip每次都访问同一服务器,以保证session会话。

    如此设置后,我每次访问的服务器都是7或者都是8。

    注:ip_hash不能与backup同时使用。当有服务器需要剔除,必须手动down掉。

    此策略适合有状态服务,比如session

    4.least_conn

    把请求转发给连接数较少的后端服务器。在轮询方式下,如果占用时间较长的请求都集中在一台服务器,会导致其负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果。

    此负载均衡策略适合请求处理时间长短不一造成服务器过载的情况。

    5.第三方策略

    第三方的负载均衡策略的实现需要安装第三方插件。

    ①fair

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

    ②url_hash

    按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再此收到请求,就可以从缓存中读取。 

     四层负载均衡和七层负载均衡

    上述  proxy_pass http://服务器组名  的方式属于基于http协议的七层负载均衡。

    四层负载均衡是基于ip和端口的,实例讲解:

    1.在lb01中/etc/nginx/nginx.conf文件中添加

    注意:此行要放在http模块外面。

    2.创建/etc/nginx/conf.c/proxy_ssh.conf

    注:这里upstream里不要写多个地址,因为我们想连接某个服务器,是要固定连接,而写多个地址的话,就会一会连接这个服务器,一会又连接另一个服务器。

    3.重启nginx服务,使用xshell打开一个新标签,使用如下命令

    在弹出的对话框中输入密码,登陆成功。

  • 相关阅读:
    override与new的区别
    预处理指令关键字
    索引器
    可选参数与命名参数
    sealed关键字
    获取变量默认值
    is和as
    throw和throw ex的区别
    位操作
    unsafe关键字
  • 原文地址:https://www.cnblogs.com/1016391912pm/p/13171353.html
Copyright © 2011-2022 走看看