Nginx实现负载均衡

回眸只為那壹抹淺笑 提交于 2020-05-06 14:32:37

1.为什么要进行负载均衡

随着互联网的发展,公司的业务流量越来越大,业务逻辑也越来越复杂,单台服务器的性能遇到了瓶颈。于是可以使用多台服务器来处理相同的业务,但是多个相同的来自客户端的请求具体交给哪台服务器进行处理呢,于是负载均衡技术就应运而生了。

2.Nginx负载均衡配置

1.修改nginx配置文件,添加如下内容

upstream tomcatservers {
		#weight:权重,默认为1,数值越大负载的权重就越大
		server 192.168.2.10:8070 weight=1;
		server 192.168.2.10:8080 weight=1;
		server 192.168.2.10:8090 weight=1;
	}
	server{
		listen 80;
		#访问的域名
		server_name d.com; 
		location / {
			#请求转发tomcatservers定义的服务器列表
			proxy_pass http://tomcatservers; 
			index index.html index.htm;
		}
	}

2.一台虚拟机下创建3个tomcat实例以来模拟三个服务器,三台tomcat服务器的端口分别为8070、8080、8090 。客户端访问的域名为:d.com ,此步骤的详细配置可参考我之前的文章Nginx实现反向代理

3.测试

访问localhost:80/d.com,Nginx服务器会把请求转发到8070,8080,8090中的一台Tomcat服务器,这里配置的均衡方式是轮询。

3.几种均衡方式

1.热备(backup):其它所有非热备服务器故障的时候,请求才会转发到热备服务器

upstream tomcatservers { 
        server 192.168.2.10:8070 weight=1;
	    server 192.168.2.10:8080 weight=1;  #热备服务器     
    }

2.轮询:nginx轮询默认权重(weight)都为1,所有server依次循环提供服务

upstream tomcatservers {
		#weight:权重,默认为1,数值越大负载的权重就越大
		server 192.168.2.10:8070 weight=1;
		server 192.168.2.10:8080 weight=1;
}

 3.加权轮询:nginx会根据权重分发给服务器不同数量的请求

upstream tomcatservers {
		#weight:权重,默认为1,数值越大负载的权重就越大
		server 192.168.2.10:8070 weight=1;
		server 192.168.2.10:8080 weight=2;
}

 4.ip_hash:nginx会将相同客户端请求分发到相同的服务器

upstream tomcatservers {
		#weight:权重,默认为1,数值越大负载的权重就越大
		server 192.168.2.10:8070 weight=1;
		server 192.168.2.10:8080 weight=1;
		ip_hash;
	}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!