当前位置首页 > Nginx知识

Nginx负载均衡

阅读次数:242 次  来源:admin  发布时间:

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) Director端需要安装Nginx: Nginx安装:http://www.cnblogs.com/xiangsikai/p/8118439.html

实验操作

注:代理 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;

  }

}
-------------------------------------------------
上一篇:外部IIS/Apache/Nginx来代理FMS的http服务
下一篇:基于DitePi系统(Debian)的NanoPi2Fire开发板系统备份与还原