如果在同一个域名下有多台服务器提供服务,此时需要nginx 负载均衡。
1.需求
nginx作为负载均衡服务器,用户请求先到达 nginx ,再由 nginx 根据负载配置将请求转发至 tomcat 服务器。
nginx负载均衡服务器: 192.168. 25.141
tomcat1服务器: 192.168. 137.4:8080
tomcat1服务器:192.168. 137.4:8081
#配置负载均衡:算法采用轮询的方法 #配置负载均衡 upstream tomcat_server5 { server 192.168 . 137.4 : 8080 ; server 192.168 . 137.4 : 8081 ; } #配置一个虚拟主机4 server { listen 80 ; server_name www.zhang4.com; location / { #域名www.zhang4.com的请求转发到tomcat_server5中的任意一台服务器上 proxy_pass http: index index.jsp index.html index.htm; } }
域名需要配置host 文件
192.168.137.4 www.zhang4.com
条件:现有一台老机器,处理能力很差,这时就不能负载均衡了,需要配置权重,来降低老机器的压力
#配置负载均衡 upstream tomcat_server5 { #配置权重时,weight=3 :表示如果有 4 次请求,则有 3 次都是这台服务器处理,默认权重都是 1 #权重越高,则处理请求的越多 server 192.168 . 137.4 : 8080 weight= 3 ; server 192.168 . 137.4 : 8081 ; } #配置一个虚拟主机4 server { listen 80 ; server_name www.zhang4.com; location / { #域名www.zhang4.com的请求转发到tomcat_server5中的任意一台服务器上 proxy_pass http: index index.jsp index.html index.htm; } }
</pre><pre code_snippet_id= "1640020" snippet_file_name= "blog_20160409_4_755562" name= "code" class = "java" ><p><pre name= "code" class = "java" >节点说明: 在http节点里添加: #定义负载均衡设备的 Ip及设备状态 upstream myServer { server 127.0 . 0.1 : 9090 down; #不接收请求 server 127.0 . 0.1 : 8080 weight= 2 ; server 127.0 . 0.1 : 6060 ; server 127.0 . 0.1 : 7070 backup; #不参于负载均衡,当所有机器挂了,则这备份机处理请求服务<p style= "display: inline !important;" ></p><p></p><p></p> } 在需要使用负载的Server节点下添加 proxy_pass http: upstream 每个设备的状态: down 表示单前的server暂时不参与负载 weight 默认为1 .weight越大,负载的权重就越大。 max_fails :允许请求失败的次数默认为1 .当超过最大次数时,返回proxy_next_upstream 模块定义的错误 fail_timeout:max_fails 次失败后,暂停的时间。 backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
Nginx的高可用
录nginx挂了的时候,需要备份的nginx ,
解决高可用的方案就是添加冗余
使用:keeplived 健康检查,
1.1 keepalived+nginx实现主备
1.1.1 什么是keepalived
keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。
Keepalived的作用是检测 web 服务器的状态,如果有一台 web 服务器死机,或工作出现故障, Keepalived 将检测到,并将有故障的 web 服务器从系统中剔除,当 web 服务器工作正常后 Keepalived 自动将 web 服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的 web 服务器。
1.1.2 keepalived工作原理
keepalived是以 VRRP 协议为实现基础的, VRRP 全称 Virtual Router Redundancy Protocol ,即虚拟路由冗余协议。
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N 台提供相同功能的路由器组成一个路由器组,这个组里面有一个 master 和多个 backup , master 上面有一个对外提供服务的 vip (VIP = Virtual IP Address ,虚拟 IP 地址, 该路由器所在局域网内其他机器的默认路由为该vip ), master 会发组播,当 backup 收不到 VRRP 包时就认为 master 宕掉了,这时就需要根据 VRRP的优先级来选举一个backup 当 master 。这样的话就可以保证路由器的高可用了。
keepalived主要有三个模块,分别是 core 、 check 和 VRRP。core 模块为 keepalived 的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。 check 负责健康检查,包括常见的各种检查方式。 VRRP模块是来实现VRRP 协议的。