nginx的负载均衡有6个策略,分别是
- 轮询,一人一下
upstream my_http {
server 192.168.0.1;
server 192.168.0.2;
}
- IP哈希,IP哈希会将我们的请求地址进行哈希计算,每一次的请求都会精准的打到某台服务器上
upstream my_http {
ip_hash;
server 192.168.0.1;
server 192.168.0.2;
}
- 加权,权重越大,得到请求的概率越大
upstream my_http {
server 192.168.0.1 weight=2;
server 192.168.0.2 weight=1;
}
- 最少连接,将请求分配到连接数最少的服务上(不常用)
upstream my_http {
least_conn;
server 192.168.0.1 weight=2;
server 192.168.0.2 weight=1;
}
- fair,按后端服务器的响应时间来分配请求,响应时间短的优先分配。(需要第三方支持)
upstream my_http {
server 192.168.0.1 weight=2;
server 192.168.0.2 weight=1;
fair;
}
- hash URI这个和上面的iphash不同 IP哈希看的是IP地址,uri哈希看的是请求的参数以及路径,经常用于资源分配不同的时候,例如想要让/app开头的请求打到负责移动端的ng上就可以采用次方法
upstream my_http {
hash $request_uri;
server 192.168.0.1 weight=2;
server 192.168.0.2 weight=1;
}
- 完整的配置
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# my_http 可以自己取名字
upstream my_http {
ip_hash;
#后台服务器的IP 请求会被拦截 并且通过指定的的方式打到具体的服务上
server 192.168.0.1;
server 192.168.0.2;
}
server {
listen 80;
server_name localhost;
location / {
##这里写我们上面取得名字即可 注意 加上http://
proxy_pass http://my_http;
}
}
}



