• Nginx 负载均衡


    Nginx 负载均衡

    说明

    • Nginx 基于OSI七层(应用层)
    • 使用Nginx 反向代理 实现负载均衡
    • Nginx负载均衡 如果某台server down机 Nginx不会去访问,自动跳转到正常的机器上去。

    实验环境

    • 三台主机:Linux Centos 6.4 32位
    • 调度器Director:192.168.1.160(公网IP)、192.168.1.100(VIP)
    • HTTP真实服务器Real server1:192.168.1.115(公网IP)
    • HTTP真实服务器Real server2:192.168.1.111(公网IP)

    实验操作

    注:代理 upsteam 名称不要用下划线"_"

    1、配置Nginx主配置文件、http{}内加入

    vim /usr/local/nginx/conf/nginx.conf

    http{
    # upstream反向代理 xsk 自定义名字
    upstream xsk{
      # server代理的IP:端口 可加入多个 端口默认为80
      # weight权重值 权重范围 0 ~ 100
      server 192.168.1.111 weight=2;
      server 192.168.1.115 weight=1;
    }
    server {
         # 代理端监听端口
         listen 80;
         # 代理端访问的域名
         server_name www.dir.com;
         location / {
              # 指定http://name/ 要与upstream name 对应一致
              proxy_pass    http://xsk/;
              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、检测配置文件

    命令:/usr/local/nginx/sbin/nginx -t
    
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
    测试配置文件

    3、重启Nginx服务

    /etc/init.d/nginx restart
    4、测试Nginx负载均衡
    [root@nginx conf]# curl -xlocalhost:80 www.dir.com
    LVS 1
    [root@nginx conf]# curl -xlocalhost:80 www.dir.com
    LVS 1
    [root@nginx conf]# curl -xlocalhost:80 www.dir.com
    LVS 2
    [root@nginx conf]# curl -xlocalhost:80 www.dir.com
    LVS 1
    [root@nginx conf]# curl -xlocalhost:80 www.dir.com
    LVS 1
    [root@nginx conf]# curl -xlocalhost:80 www.dir.com
    LVS 2
    测试 加权轮询
    测试 其中一个web故障,就不访问
    
    [root@nginx conf]# curl -xlocalhost:80 www.dir.com
    LVS 1
    [root@nginx conf]# curl -xlocalhost:80 www.dir.com
    LVS 1
    [root@nginx conf]# curl -xlocalhost:80 www.dir.com
    LVS 1
    [root@nginx conf]# curl -xlocalhost:80 www.dir.com
    LVS 1
    [root@nginx conf]# curl -xlocalhost:80 www.dir.com
    LVS 1
    测试 单点故障

    负载均衡模式

    < 轮询分发请求 > = 平均分发连接请求
    --------------------------------
    
    upstream xyo{
    server x.x.x.x ;
    server x.x.x.x ;
    }
    
    --------------------------------
    
    
    < 加权轮询请求 > = 加入权重指定分发数
    --------------------------------
    
    upstream xyo{
    server x.x.x.x weight=1;
    server x.x.x.x weight=2;
    }
    
    --------------------------------
    
    
    
    < 最少连接请求 > = 请求自动分发处理连接少的端
    --------------------------------
    
    upstream xyo{
    least_conn; 
    server x.x.x.x;
    server x.x.x.x;
    }
    
    --------------------------------
    
    
    
    < 哈希绑定连接请求 > = 请求通过hash绑定到访问客户端
    --------------------------------
    
    upstream xyo{
    ip_hash; 
    server x.x.x.x;
    server x.x.x.x;
    }
    
    --------------------------------

     负载均衡模块参数

    模板
    upstream xyo{
    server x.x.x.x 参数;
    server x.x.x.x 参数;
    }
    
    
    <max_fails> = 指定Server允许请求失败次数,默认为1,设置为0将永久无效状态。
    <fail_timeout> = 指定server请求失败后,再fail_timeout时间内,心情求不会分配给这台机器。
    <max_conns> = 指定server接收的最大请求数,
    <backup> = 备份机,所有服务挂掉后生效。
    <down> = 标识某一台server不可用。
    -------------------------------------------------
        upstream xyo{
     server 192.168.1.166 max_fails=1 fail_timeout=10;
     server 192.168.1.109 max_fails=1 fail_timeout=10;
     server 192.168.1.103 max_conns=1000;
     server 192.168.1.102 backup;
     server 192.168.1.103 down;
    }
    -------------------------------------------------
    
    
    <resolver> = 指定DNS域名解析服务器地址
    <resolve> = 选择指定resolver域名地址解析
    -------------------------------------------------
    http {
    
    resolver 8.8.8.8
    
        upstream xyo{
     server www.zkjiashijie.com resolve;
     server admin.zkjiashijie.comresolve;
    
      }
    
    }
    -------------------------------------------------
  • 相关阅读:
    C语言I博客作业11
    第十四周助教总结
    C语言I博客作业10
    Tensorflow--MNIST简单全连接层分类
    记一些好看的Android开源菜单
    AS更新到3.5.2遇到ERROR: SSL peer shut down incorrectly问题
    Tensorflow tf.app.flags 的使用
    Android Sensor(传感器)
    《第一行代码》百分比布局出现的问题
    当Turtle遇见柯南?
  • 原文地址:https://www.cnblogs.com/xiangsikai/p/8432566.html
Copyright © 2020-2023  润新知