nginx配置信息

    nginx是一个高性能的HTTP和反向代理web服务器,同时也是提供了IMAP/POP3/SMTP服务。

作为HTTP服务的作用:包括静态文件服务,反向代理服务器的原理和功能以及负载均衡和虚拟主机的配置。

nginx是负载均衡器,不提供直接的轮询,但是通过upstream 模块实现负载均衡来间接实现轮询,在nginx中,可以通过least_connip_hash 或者 hash 方法来设置轮询策略。

所有的配置信息都是在nginx.conf中完成的。

nginx的upstream支持6种方式的分配算法分别是

1 轮询策略

轮询策略其实是一个特殊的加权策略,不同的是,服务器组中的各个服务器的权重都是1

upstream backend {
   server 192.168.136.136 weight=1;
   server 192.168.136.136:81 weight=1;
   server 192.168.136.136:82 weight=1;
   server 192.168.136.136:83 weight=1;
   }    
   
    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass  http://backend;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

2 轮询加权策略

通过加入weight的值进行加权处理,权重值越大,服务器越容易被访问,因此性能好的服务器适当的加大权重值

upstream backend {
   server 192.168.136.136 weight=1;
   server 192.168.136.136:81 weight=2;
   server 192.168.136.136:82 weight=3;
   server 192.168.136.136:83 weight=4;
   }    
   
    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass  http://backend;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

3 IP哈希策略

ip_hash 策略能够将某个客户端IP的请求固定到同一台服务器上,例如A用户访问服务器,通过固定算法后,被固定到192.168.136.136的web服务器

那么,用户A下次访问时,依旧会到访问 192.168.136.136 服务器。因此,该策略解决了多台服务器Session不共享的问题【因为不同的客户端会被分到不同的服务器,且之后这种对应关系是不变的】

ip_hash 策略类似于url_hash ,一个采用Ip地址进行计算,一个采用URL地址进行计算

该算法不能保证服务器的负载均衡,可能存在个别服务器访问量很大,很小的情况.

另外,实际生产环境不建议使用此算法,如果要解决session共享的问题,我们可以使用第三方中间件 redis 来完成共享问题

upstream backend {
   ip_hash;
   server 192.168.136.136 ;
   server 192.168.136.136:81;
   server 192.168.136.136:82 ;
   server 192.168.136.136:83;
   }    
   
    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass  http://backend;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

4.least_conn 策略

最少连接,把请求转发给连接数最少的服务器。

轮询算法/轮询加权算法会把请求按照一定比例分发请求到各服务器上,但是,有些请求占用时间长,如果把这些响应占用时间长的请求大比例发送到了某一台服务器,那么这台服务器随着时间的增加会负载比较高【因为响应较长的请求还没处理完,新的请求又来了】,在这种情况下,采用 least_conn 的方式是最适合的,它能达到更好的负载均衡

upstream backend {
   least_conn;
   server 192.168.136.136 ;
   server 192.168.136.136:81;
   server 192.168.136.136:82 ;
   server 192.168.136.136:83;
   }    
   
    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass  http://backend;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

5.url_hash 策略

url_hash 和 ip_hash 类似,不同的是,客户端ip可能变,但客户端发送的请求URL不同功能模块虽说不同,但同一个功能点的URL是固定不变的

该算法主要是解决 缓存命中率的问题

upstream backend {
   hash $request_uri;
   server 192.168.136.136 ;
   server 192.168.136.136:81;
   server 192.168.136.136:82 ;
   server 192.168.136.136:83;
   }    
   
    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass  http://backend;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

6、智能的fair 策略【Nginx默认不支持,需下载第三方模块】

fair 采用的不是固定的轮询算法进行负载均衡,而是智能的根据页面大小、加载时间长短进行负载计算

upstream backend {
   fair;
   server 192.168.136.136 ;
   server 192.168.136.136:81;
   server 192.168.136.136:82 ;
   server 192.168.136.136:83;
   }    
   
    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass  http://backend;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值