再看了一下nginx均衡负载的一些设置,其实就是对于配置文件的一些修改,看看以下配置文件这个例子
http {
upstream www.test1.com {
ip_hash;
server 172.16.125.76:8066 weight=10;
server 172.16.125.76:8077 down;
server 172.16.0.18:8066 max_fails=3 fail_timeout=30s;
server 172.16.0.18:8077 backup;
}
upstream www.test2.com {
server 172.16.0.21:8066;
server 192.168.76.98:8066;
}
server {
listen 80;
server_name www.test1.com;
location /{
proxy_pass http://www.test1.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name www.test2.com;
location /{
proxy_pass http://www.test2.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
定义了两个不知道叫啥的东西,暂且叫server,www.test1.com和www.test2.com,upstream当中的server对应了分配的各个不知到叫啥的东西,对应server花括号里面需要设置对应的proxy_pass,这样就可以实现自动分配了
www.test2.com就是标准的均衡负载,几个server轮流分配,而在www.test1.com中,有ip_hash这么一句,这就表示按ip会记录并分配对应的server,用这种方法可以实现会话保持。
后面跟weight,表示分配权重;
down表示负载过重或者不参与了;
backup 其它服务器时或down时才会请求backup服务器;
max_fails 失败超过指定次数会暂停或请求转往其它服务器;
fail_timeout 失败超过指定次数后暂停时间;