1.round-robin
轮询,对应用程序服务器的请求以循环方式分发
rr 加权轮询
weight,权重,默认是1,越大权重越高
配置和案例
upstream myweb1{
server 192.168.0.161 weight=1;
server 192.168.0.162 weight=3;
server 192.168.0.163 weight=6;
}
server {
listen 80;
server_name www.sc.com;
location / {
proxy_pass http://myweb1;
}
}
weight值越大权重越高,得到的请求数就会越多
配置和案例
1.基于ip地址
http {
......其他的内容
upstream myweb1{
server 192.168.0.161;
server 192.168.0.162;
server 192.168.0.163;
}
server {
listen 80;
location / {
proxy_pass http://myweb1;
}
}
2.基于域名
http {
......其他的内容
upstream myweb1{
server 192.168.0.161;
server 192.168.0.162;
server 192.168.0.163;
}
server {
listen 80;
server_name www.sc.com;
location / {
proxy_pass http://myweb1;
}
}
2.least-connected
最小连接数,下一个请求分配给活动连接最少的服务器
配置和案例
http {
......其他的内容
upstream myweb1{
least_conn;
server 192.168.0.161;
server 192.168.0.162;
server 192.168.0.163;
}
server {
listen 80;
server_name www.sc.com;
location / {
proxy_pass http://myweb1;
}
}
3.ip-hash
让同一个ip地址的所有请求都集中到同一台服务区
你上一次访问哪一台,下一次也访问那一台
哈希函数用于确定应为下一个请求(基于客户端的 IP 地址)选择哪个服务器
。
cookie /session
cookie和session 是一个存放数据的地方(空间)
cookie
客户机这边的(浏览器里拿出一块空间作为session)
session
服务器里的(服务器里开辟一块内存空间作为session)
配置和案例
http {
......其他的内容
upstream myweb1{
ip_hash;
server 192.168.0.161;
server 192.168.0.162;
server 192.168.0.163;
}
server {
listen 80;
server_name www.sc.com;
location / {
proxy_pass http://myweb1;
}
}
4.Generic Hash
还可以根据url hash
5.Least Time (NGINX Plus only)
平均时间最小,活跃最小的,下一次分给
6.Random
least_conn
least_time=header (NGINX Plus)
least_time=last_byte (NGINX Plus)