Nginx负载均衡

如果在同一个域名下有多台服务器提供服务,此时需要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://tomcat_server5;
			  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://tomcat_server5;
			  index index.jsp index.html index.htm;
		}
	    }

节点说明:
在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; #不参于负载均衡,当所有机器挂了,则这备份机处理请求服务

} 在需要使用负载的Server节点下添加 proxy_pass http://myServer; 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和多个backupmaster上面有一个对外提供服务的vipVIP = Virtual IP Address,虚拟IP地址,该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到VRRP包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backupmaster。这样的话就可以保证路由器的高可用了。

keepalived主要有三个模块,分别是corecheckVRRP。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。VRRP模块是来实现VRRP协议的。




你可能感兴趣的:(linux)