1.负载均衡的作用
负载均衡:分摊到多个操作单元上进行执行,和它的英文名称很匹配。就是我们需要一个调度者,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡。
2.Nginx负载均衡的集中方式介绍
2.1 轮询
轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除,如下配置后轮训130服务和131服务。
upstream test {
server 192.168.199.130:80;
server 192.168.199.131:80;
}
2.2 权重
指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能,如下配置后130服务的访问比率会是131服务的二倍。
upstream test {
#weigth参数表示权值,权值越高被分配到的几率越大
#下面表示130有3分之2几率,131有3分之1几率
server 192.168.199.130:80 weight=2;
server 192.168.199.131:80 weight=1;
}
2.3 iphash
每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)。
upstream test {
ip_hash;
server 192.168.199.130:80 weight=1;
server 192.168.199.131:80 weight=2;
}
2.4 最少连接
将请求分配到连接数最少的服务上。
upstream test {
least_conn;
server 192.168.199.130:80 weight=1;
server 192.168.199.131:80 weight=2;
}
2.5 fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream test {
server 192.168.199.130:80 weight=1;
server 192.168.199.130:80 weight=2;
fair;
}
3.Nginx配置
以轮训为例,如下是nginx.conf完整代码。
http {
#负载均衡设置
upstream test {
server 192.168.199.130:80;
server 192.168.199.131:80;
}
server {
listen 80;
server_name localhost;
location / {
#此处名称必须与upstream后面的名称一致
#请求转向test定义的服务器列表
proxy_pass http://test;
}
}
}
4.注意事项(针对于fastadmin项目的问题)
4.1 样式图片不加载
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
#加上这句
proxy_pass http://test;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log /dev/null;
#加上这句
proxy_pass http://test;
}
4.2 访问某个.php文件 显示 File not found.
注释 网站.conf文件下的以下代码(和问题1是同一个文件夹)