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

  • 相关阅读:
    codeforces
    hdu
    hdu
    poj 2823
    hdu
    hdu
    hdu
    微信公众号 SDK
    PHP 正则表达式
    注册和登录时的验证码
  • 原文地址:https://www.cnblogs.com/xiufengd/p/14173203.html
Copyright © 2020-2023  润新知