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算法。

  • 相关阅读:
    HDU 1202 The calculation of GPA
    HDU 1201 18岁生日
    HDU 1200 To and Pro
    C语言实现的图的深度搜索与广度搜索程序
    深度优先搜索和广度优先搜索的深入讨论
    Linux sftp 安全文件传输命令
    看白鹿原有感
    中国人民抗日战争暨世界反法西斯战争胜利70周年(20150903)
    高一的我曾对自己说"要放慢脚步去生活"!?
    网络营销(续)
  • 原文地址:https://www.cnblogs.com/xiufengd/p/14173203.html
Copyright © 2011-2022 走看看