• nginx负载均衡集群


    nginx的负载均衡集群是通过upstream实现,但是它的健康状态检测功能弱,是基于端口的,并且它适合后端10台以下主机的负载,因为并发太多容易造成请求拥堵。

    nginx支持的负载均衡调度算法

    轮询(默认):按时间顺序逐一分发请求,当后端某主机宕机,立马将其踢出
    weight:指定轮询权值,值越大得到分发请求越多,适合后端主机性能不均衡的情况
    ip_hash:根据客户端请求的IP做hash运算,同一个IP的用户固定访问后端某个主机,适合需要session共享的情况
    fair:根据后端主机返回的页面大小和返回时间,也就是响应时间,来分发请求,优先给响应时间短的后端主机分发请求。需要upstream_fair模块的支持
    url_hash:根据URL做hash运算,同一个地址的请求分发到同一台后端主机,适合提升后端缓存服务器效率。需要hash模块支持。

    nginx负载的状态

    down:该后端主机不作为负载成员
    backup:当所有负载成员主机都宕机时,启用该备份主机继续提供服务
    max_fails:最大请求失败次数,当达到此失败次数,返回proxy_next_upsteam所定义的错误
    fail_timeout:经历了max_fails次失败后暂停服务的时间。

    HTTP段配置:


    #定义负载均衡器
    upstream myserver {
    server 172.16.0.7:8081 weight=1 max_fails=2 fail_timeout=20s;
    server 172.16.0.7:8082 weight=4 max_fails=2 fail_timeout=20s;
    server 172.16.0.7:8083 weight=3 max_fails=2 fail_timeout=20s;
    server 172.16.0.7:8084 backup;
    }

    #定义代理服务器
    server{
    listen  80;
    server_name     www.tb.com;
    index index.html index.htm
    root /mysite/web/
    location / {
    proxy_pass http://myserver ;
    proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
    }
    }

    #定义各后端服务器主机
    server{
    listen  8081;
    server_name     www.tb.com;
    location / {
    root /mysite/backen1/
    }
    }
    server{
    listen  8082;
    server_name     www.tb.com;
    location / {
    root /mysite/backen1/
    }
    }
    server{
    listen  8083;
    server_name     www.tb.com;
    location / {
    root /mysite/backen1/
    }
    }
    server{
    listen  8084;
    server_name     www.tb.com;
    location / {
    root /mysite/backen1/
    }
    }
    upstream指令用于定义负载均衡集群文件名,在upstream块内,使用server定义每一台后端主机
    proxy_next_upstream指令用于定义后端主机遇到什么问题不能提供服务,转而请求下一个后端主机继续提供服务。

    补充:

    实验时由于后端主机和负载均衡反向代理在同一台服务器,模拟后端服务器主机故障时可以设置iptables的禁用规则,例如
    # iptables -t filter -I INPUT 1 -d 172.16.0.7 -p tcp --dport 8081 -j REJECT






  • 相关阅读:
    Android Market google play store帐号注册方法流程 及发布应用注意事项【转载】
    cocos2d-x 调用第三方so文件
    ios cocos2d-x 多点触摸
    linux文件分割(将大的日志文件分割成小的)
    Linux 统计某个字符串出现的次数
    scapy基础-网络数据包结构
    mac 下idea光标问题
    mac ox终端显示 bogon的问题
    hibernate和mybatis的区别
    memcached知识点梳理
  • 原文地址:https://www.cnblogs.com/tsw1107/p/d91be6456e4cf6205d49952b7e6e2b01.html
Copyright © 2020-2023  润新知