nginx实现负载均衡
一、nginx负载均衡
负载均衡的作用
负载均衡的作用是为了解决单个节点压力过大,造成Web服务响应过慢的问题。
以轮询为例,如下是nginx.conf完整代码
worker_processes 1;
events {
worker_connections 1024;
}
http {
upstream server {
server localhost:10001;
server localhost:10002;
}
server {
listen 10000;
server_name localhost;
location / {
proxy_pass http://server;
proxy_redirect default;
}
}
}
负载均衡策略
-
轮询:
轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除,如下配置后轮训10001服务和10002服务。
upstream server { server localhost:10001; server localhost:10002; }
-
iphash
每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)。
upstream server { ip_hash; server localhost:10001 weight=1; server localhost:10002 weight=2; }
-
最小连接数
将请求分配到连接数最少的服务上。
upstream server { least_conn;