Nginx的配置文件在nginx/conf/nginx.conf文件中
配置负载均衡
概述:Nginx是针对Http的负载均衡,当用户访问网站时,如何将用户的请求分发到集群中不同的机器上,是nginx要做的事。
负载均衡示意图
upstream是配置nginx与后端服务负载均衡的非常重要的模块,并且他还能对后端的服务器的健康状态进行检查,若后端服务器中的一台发生故障,则前端的请求不会转发到该故障的机器上。
负载均衡举例:
1.在http模块中添加一个策略
upstream www.helloworld.com {
server 127.0.0.1:8888;
server 127.0.0.1:8889;
}
2.在server模块匹配一个转发
server {
listen 80;
server_name localhost;
location /myweb {
proxy_pass http://www.helloworld.com;
}
}
当用户请求的url中带有/myweb时,根据配置,会将请求匹配到字符为www.helloworld.com的策略上,并根据策略中的设定进行转发。
负载均衡的策略
轮询策略
轮流分配,后端服务器down掉之后,自动剔除
upstream www.helloworld.com {
server 127.0.0.1:8888;
server 127.0.0.1:8889;
}
权重策略
按一定比例分配到后端服务器,通常用于服务器配置不均的情况
upstream www.helloworld.com {
server 127.0.0.1:8888 weight=3;
server 127.0.0.1:8889 weight=1;
}
ip绑定
每个请求按访问ip的hash值分配,每个用户分配到固定的后端服务器中,可以解决会话Session丢失的问题
upstream www.helloworld.com {
ip_hash;
server 127.0.0.1:8888;
server 127.0.0.1:8889;
}
最少连接策略
哪个服务器连接少就转发到哪个服务器
upstream www.helloworld.com {
least_conn;
server 127.0.0.1:8888;
server 127.0.0.1:8889;
}
其他策略
其他所有非backup机器down的时候,才会请求back的机器
upstream www.helloworld.com {
server 127.0.0.1:8888;
server 127.0.0.1:8889 backup;
}
down表示当前服务器是down状态,不参与负载均衡
upstream www.helloworld.com {
server 127.0.0.1:8888;
server 127.0.0.1:8889 down;
}