环境:

两台后端web,一台代理服务器

web1:eth0:192.168.2.100/24   httpd做一个web

web2:eth0:192.168.2.200/24   httpd做一个web

proxy:eth0:192.168.2.5/24

代理服务器有什么好处?

1.隐藏后端真实服务器信,有一定安全作用.

2.负载调度器,实现负载均衡的作用.

3.健康检查,实现状态检查,自动添加剔除集群.

在代理服务器nginx conf配置中在server之上使用upstream来定义后端集群

http{

......................

  upstream webproxy {          //定义集群名字叫proxy
    server 192.168.2.100:80;    //后端服务器1IP+PORT
    server 192.168.2.200:80;    //后端服务器2IP+PORT
  }

  server {

    listen 80;

    server_name localhost;

    location / {

       proxy_pass http://webproxy;

    }

  }

  server {

  }

}

重启nginx重新载入配置文件初步测试:

nginx篇中级用法之反向代理(七层调度)-LMLPHP

看到调度器自动转到web1 和 web2 且使用轮询算法.

在nginx upstream中可以指定后端服务器权重等参数.

upstream webproxy {          //定义集群名字叫proxy
    server 192.168.2.100:80 weight=1 max_fails=1 fail_timeout=30;;    
    server 192.168.2.200:80 weight=2 max_fails=2 fail_timeout=30;;

    server 192.168.2.201:80 down;

}

其中参数weight可以设置后台服务器的权重,max_fails可以设置后台服务器的失败次数,fail_timeout可以设置后台服务器的失败超时时间,down标记服务器已关机,不再参与集群调度.

wigth默认值为1,fail_timeout单位为秒.

在nginx upstream中还可以指定算法

upstream webproxy {          //定义集群名字叫proxy

    ip_hash;
    server 192.168.2.100:80 weight=1 max_fails=1 fail_timeout=30;;    
    server 192.168.2.200:80 weight=2 max_fails=2 fail_timeout=30;;

    server 192.168.2.201:80 down;

}

nginx目前支持3种调度算法:

轮询(默认):逐一循环调度

weight:指定轮询几率,权重值与访问率成正比 2 比 1多一倍的访问量

ip_hash:根据客户端IP分配固定的后端服务器

05-28 12:22