zoukankan      html  css  js  c++  java
  • nginx负载均衡

    因业务压力变大,所以需要用ngix做一下负载均衡,因受逻辑限制,所以同一IP得请求需要打到同一个后端上

    配置如下:

    upstream upstream_name{
      ip_hash;
      server 127.0.0.1:8191 weight=4 max_fails=2 fail_timeout=30s;
      server 127.0.0.1:8193 weight=2 max_fails=2 fail_timeout=30s;
    }

      然后修改proxy_pass为

    proxy_pass       http://upstream_name;

      weight:默认为1.weight越大,负载的权重就越大,比如上述配置中,如果收到6个请求,8191会处理4个,8193会处理两个

      max_fails:允许请求失败的次数默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误。

      fail_timeout:max_fails次失败后,暂停的时间。上面两个参数得解释是:30秒内请求某一应用失败3次,认为该应用宕机,后等待30秒,30秒内不会再把新的请求发送到宕机的应用,而是直接发到正常的那一台,时间到后再有请求进来继续尝试连接宕机应用且仅尝试1次,如果还是失败,则继续等待30秒,循环往复,直到恢复。

    另外还有一下参数:

      down:表示单前的server暂时不参与负载,比如8191不再使用,可以修改为 server 127.0.0.1:8191 down;

      backup:备用服务器, 其它所有的非backup机器down或者忙的时候,请求backup机器,所以这台机器压力会最轻。

    特别注意:

      如果项目中存在定时任务,需要设置主从,主服务处理定时任务,副服务器中将定时任务拿掉,防止任务重复

    除 ip_hash 外,nginx还有其他几种,包括 url_hash 等形式,url_hash :按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存服务器时比较有效。

    upstream resinserver{
        server 192.168.1.10:8080;
        server 192.168.1.11:8080;
        hash $request_uri;
        hash_method crc32;
    }

    在upstream中加入hash语句,hash_method是使用的hash算法。

  • 相关阅读:
    实现Callable接口实现多线程
    匿名内部类方式实现
    实现Runnable接口方式
    后台线程
    继承Thread类
    线程中断详解
    第六章、Linux 的档案权限不目彔配置
    安装virtual box
    CISCO实验记录六:EIGRP路由协议
    zabbix监控项整理Items-key
  • 原文地址:https://www.cnblogs.com/xiufengd/p/14173203.html
Copyright © 2011-2022 走看看