- 1.Round Robin: 对所有的请求进行轮询发送请求,默认的分配方式。
upstream ngcon {
server www.baidu.com;
server www.baidu2.com;
}
- 2.Least Connections:以最少的活动连接数将请求发送到服务器,同样要考虑服务器权重。
upstream ngcon {
least_conn;
server www.baidu.com;
server www.baidu2.com;
}
- 3.IP Hash : 发送请求的服务器由客户机IP地址决定。在这种情况下,使用IPv4地址的前三个字节或整个IPv6地址来计算散列值。该方法保证来自相同地址的请求到达相同的服务器,除非该服务器不可用。
upstream ngcon {
ip_hash;
server www.baidu.com;
server www.baidu2.com;
}
测试:
- 找到nginx的配置文件nginx.conf,该配置在nginx/conf/nginx.conf目录下,新增如下配置:
upstream ngcon{
server 127.0.0.1:8085;
server 127.0.0.1:8086;
}
- 然后在server添加/修改如下配置:
server {
listen 80;
server_name 127.0.0.1;
location / {
root html;
proxy_pass http://ngcon;
proxy_connect_timeout 3s;
proxy_read_timeout 5s;
proxy_send_timeout 3s;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
- 配置说明:
- server: 虚拟主机的名称,一个http中可以配置多个server;
- listen:Nginx默认的端口;
- server_name:Nginx服务的地址,可以使用域名,多个用空格分隔。
- proxy_pass:代理路径,一般配置upstream后面的名称用于实现负载均衡,可以直接配置ip进行跳转
启动Nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
热加载配置文件
/usr/local/nginx/sbin/nginx -s reload