Nginx负载均衡配置

负载均衡是在系统访问量过大时,避免单一服务器受压过大而导致宕机,提高系统的高可用性。

环境准备

三台装了centOS操作系统的服务器并且都装了nginx,可以参考另外一篇博客linux操作系统安装Nginx
我这里装了三台,ip分别是:
A. 192.168.202.130
B. 192.168.202.131
C. 192.168.202.133
其中A服务器作为主服务器,B,C作为负载均衡服务器
将nginx安装目录下的html文件夹下的index.html修改成不一样的,防止测试的时候看不出来访问的哪台服务器

测试环境

本地修改hosts ,目录C:\Windows\System32\drivers\etc
添加如下:

192.168.202.130 mazh.com

修改nginx配置文件

修改A

打开nginx.conf,文件位置在nginx安装目录的conf目录下

在http段加入以下代码

upstream mazh.com { 
      server  192.168.202.131:80 weight=2; 
      server  192.168.202.133:80; 
} 

server{ 
    listen 80; 
    server_name mazh.com; 
    location / { 
        proxy_pass         http://mazh.com; 
        proxy_set_header   Host             $host; 
        proxy_set_header   X-Real-IP        $remote_addr; 
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for; 
    } 
}

保存重新载入配置文件 命令:

/usr/local/webserver/nginx/sbin/nginx -s reload 
  • weight 默认为1.weight越大,负载的权重就越大,如上所配置的,每接收到三个请求2个请求都会走B服务器
  • down 表示单前的server暂时不参与负载
  • max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
  • fail_timeout:max_fails 次失败后,暂停的时间。
  • backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

测试的时候把某一个值加大,来看是否负载
上面server的值也可以修改为tomcat部署的服务,对应的ip和端口

修改B,C

B、C服务器nginx.conf设置
打开nginx.confi,在http段加入以下代码

server{ 
    listen 80; 
    server_name mazh.com; 
    index index.html; 
    root /data0/htdocs/www; 
}

保存重新载入配置文件 命令:

/usr/local/webserver/nginx/sbin/nginx -s reload 

这样测试的时候,在浏览器输入http://mazh.com
就可以根据权重值,访问到想要访问的服务器效果了。


上面只采用了一种权重的负载均衡方案,还有三种:

  • 轮询
    • 根据上面的配置把 weight去掉就是了
  • IP地址哈希
    • 根据就是相同的IP请求负载到同一个机器上,保证session的一致性,加上ip_hash就好了如下
upstream mazh.com { 
      ip_hash;
      server  192.168.202.131:80 weight=2; 
      server  192.168.202.133:80; 
}
  • 最少连接
    • Web请求会被转发到连接数最少的服务器上。把ip_hash换成 least_conn就好了
upstream mazh.com { 
      least_conn;
      server  192.168.202.131:80 weight=2; 
      server  192.168.202.133:80; 
}
其中权重和IP地址哈希的可以同时使用

session共享还可以有其他的实现方式,比如缓存等,只要能多台服务器共享就可以,
有的问题也不能在一棵树上吊死,你说是不是。


根据以上的操作可以实现负载均衡,那高可用呢,如果主服务器挂了怎么办?
稍后会再写一篇博客介绍nginx的高可用。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值