Nginx教程 4.Nginx负载均衡构建高可用的Web应用

nginx的负载均衡可以简单实现服务的双机热备,常用负载均衡算法有这几种:轮询、权重、hash等

准备工作

1.安装nginx。

2.两台一样的服务分别占用不同的端口,访问如下:

9001服务

9002服务

轮询

nginx默认负载均衡算法是轮询,需要添加upstream配置如下:

upstream  app {
	server    127.0.0.1:9001;
	server    127.0.0.1:9002;
}

server {
	listen       80;
	server_name  localhost;

	location / {
		proxy_pass http://app;
	}
}

多次访问 http://localhost 即可看到9001和9002交替访问。如果我们关闭9002服务的情况,那么就只会访问9001,相当于做了双机热备功能

权重

该场景可以根据两台服务器的性能来决定权重

upstream  app_weight {
	server    127.0.0.1:9001 weight=1;
	server    127.0.0.1:9002 weight=2;
}

server {
	listen       80;
	server_name  localhost;

	location / {
		proxy_pass http://app_weight;
	}
}

iphash

根据客户端ip取hash值来分配的服务器,该种方式可以避免前面两种导致的服务器session失效

upstream  app_iphash {
	ip_hash;
	server    127.0.0.1:9001;
	server    127.0.0.1:9002;
}

server {
	listen       80;
	server_name  localhost;

	location / {
		proxy_pass http://app_iphash;
	}
}

最少连接

分配到当前连接数最少的

upstream  app_leastconn {
	least_conn;
	server    127.0.0.1:9001;
	server    127.0.0.1:9002;
}

server {
	listen       80;
	server_name  localhost;

	location / {
		proxy_pass http://app_leastconn;
	}
}

fair

按照服务的响应时间优先分配

upstream  app_fair {
	server    127.0.0.1:9001;
	server    127.0.0.1:9002;
	fair;
}

server {
	listen       80;
	server_name  localhost;

	location / {
		proxy_pass http://app_fair;
	}
}

参考文档:https://www.jianshu.com/p/4c250c1cd6cd

你可能感兴趣的:(nginx,nginx,负载均衡,前端)