文章目录
负载均衡与反向代理的区别和联系
- 反向代理 -> 仅代理一台服务器
- 负载均衡 -> 可以代理(多台,集群)
负载均衡配置文件
cat node_proxy.conf
upstream node {
server 172.16.1.7:80;
server 172.16.1.8:80;
}
server {
listen 80;
server_name node.oldboy.com;
location / {
proxy_pass http://node;
include proxy_params;
}
}
vim /etc/nginx/proxy_params //优化参数文件
#添加发往后端服务器的请求头信息
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#代理到后端的tcp连接,响应,返回等超时时间
proxy_connect_timeout 30; #代理与后端服务器连接超时时间
proxy_send_timeout 60; #代理等待后端服务器的响应时间
proxy_read_timeout 60; #后端服务器数据回传给nginx代理超时时间
#代理缓冲区
proxy_buffering on; #把后端返回的内容先放到缓冲区中,然后再返回给客户端,边收边传
proxy_buffer_size 32k; #设置nginx代理保存用户头信息的缓冲区大小
proxy_buffers 4 128k;
负载均衡的状态参数
状态 | 概述 |
---|---|
down | 当前的server暂时不参与负载均衡 |
backup | 预留的备份服务器 |
max_fails | 允许请求失败的次数 |
fail_timeout | 经过max_fails失败后, 服务暂停时间 |
max_conns | 限制最大的接收TCP连接数 |
1.测试down状态, 测试该Server不参与负载均衡的调度
upstream load_pass {
//不参与任何调度, 相当于注释
server 10.0.0.7:80 down;
}
2.测试backup以及down状态
upstream load_pass {
server 10.0.0.7:80;
server 10.0.0.8:80 backup;
}
3.测试max_fails失败次数和fail_timeout 多少时间内失败多少次则标记down
upstream load_pass {
server 10.0.0.7:80;
server 10.0.0.8:80 max_fails=2 fail_timeout=10s;
}
4.测试max_conns最大TCP连接数
upstream load_pass {
server 10.0.0.7:80;
server 10.0.0.8:80 max_conns=1;
}
Nginx调度策略
调度算法 | 概述 |
---|---|
轮询 | 按时间顺序逐一分配到不同的后端服务器(默认) |
weight | 加权轮询,weight值越大,分配到的访问几率越高 |
ip_hash | 每个请求按访问IP的hash结果分配,这样来自同一IP的固定访问一个后端服务器 |
url_hash | 按照访问URL的hash结果来分配请求,是每个URL定向到同一个后端服务器 |
least_conn | 最少链接数,那个机器链接数少就分发 |
加权轮询–>针对http请求
upstream node {
server 172.16.1.7:80 weight=5;
server 172.16.1.8:80;
}