Nginx配置负载均衡

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是同一个文件夹)
Nginx配置负载均衡_第1张图片

你可能感兴趣的:(负载均衡,nginx,服务器)