1.nginx负载均衡的几种算法

  1. 轮询 :大家权重一样

    1. upstream back_server {
    2. server 192.168.1.1:8080;
    3. server 192.168.1.2:8080;
    4. server 192.168.1.3:8080;
    5. server 192.168.1.4:8080;
    6. }
  2. 权重(weight):weight越大,承担的任务越多

    1. upstream back_server {
    2. server 192.168.1.1:8080 weight = 3;
    3. server 192.168.1.2:8080 weight = 1;
    4. server 192.168.1.3:8080;
    5. server 192.168.1.4:8080;
    6. }
  3. ip_hash:每个请求按照访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题

    1. upstream bach_server {
    2. ip_hash;
    3. server 192.168.1.1:8080;
    4. server 192.168.1.2:8080;
    5. }
  4. url_hash:按照url的hash结果分配请求,每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

    1. upstream back_server {
    2. hash $request_uri;
    3. server 192.168.1.1:8080;
    4. server 192.168.1.2:8080;
    5. }
  5. fair(第三方),按照后端服务器的响应时间分配请求,响应时间短的优先分配

    1. upstream back_server {
    2. server 192.168.1.1:8080;
    3. server 192.168.1.2:8080;
    4. fair;
    5. }

    2.Location的几种匹配方式

  6. = 精准匹配

  7. ^~以某个字符串开头
  8. ~区分大小写的正则匹配
  9. ~*不区分大小写的正则匹配
  10. !~区分大小写的不匹配正则
  11. !~*不区分大小写的不正则匹配
  12. / 通用匹配,任何请求都会被匹配到