Nginx(十四) 配置文件详解 - 负载均衡(超详细)

1. upstream

Syntax:    upstream name { ... }
Default:    —
Context:    http

        upstream块定义了一个上游服务器的集群,便于反向代理中的proxy_pass使用。

2. server 

Syntax:    server address [parameters];
Default:    —
Context:    upstream

server指定一台上游服务器的名字,该名字可以是域名、ip地址端口、UNIX句柄等,后面可跟参数:

.weight=number:设置向这台上游服务器转发的权重,默认是1。

.max_fails=number:该选项与fail_timeout配合使用,指在fail_timeout时间段内,如果向当前的上游服务器转发失败次数超过number,则认为在当前的fail_timeout时间段内这台上游服务器不可用。max_fail默认为1,如果设置为0,表示不检查失败次数。

.fail_timeout=time:fail_timeout表示该时间段内转发失败多少次后认为上游服务器暂时不可用,用于优化反向代理功能。它与向上游服务器建立连接的超时时间、读取上游服务器的响应超时时间等完全无关。默认为10s。

.down:表示所有的上游服务器永久下线,只在使用ip_hash配置项时才有用。

.backup:在使用ip_hash配置项时它是无效的。表示所在的上游服务器只是备份服务器,只有在所有的非备份上游服务器都失效后,才会向所在的上游服务器转发请求。

upstream backend {
    server backend1.example.com weight=5;
    server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
    server unix:/tmp/backend3;
}

3. ip_hash 

Syntax:    ip_hash;
Default:    —
Context:    upstream

ip_hash是某个用户的请求始终落在固定的一台上游服务器上。它根据用户端的ip计算出一个key,将key按照upstream集群里的上游服务器数量进行取模,然后以取模后的结果把请求转发到相应的上游服务器中,这样确保了同一个客户端的请求只会转发到指定的上游服务器中。

ip_hash与weight(权重)配置不可同时使用。如果upstream中一台服务器不能使用时,不能直接删除,而是使用down标识,来确保转发策略的一惯性。

upstream backend {
    ip_hash;

    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com down;
    server backend4.example.com;
}

 

相关推荐

  1. Nginx() 配置文件详解 - 负载均衡详细

    2024-01-02 20:10:02       43 阅读
  2. Nginx-nginx 负载均衡方式(详细

    2024-01-02 20:10:02       45 阅读
  3. nginx 负载均衡配置详解

    2024-01-02 20:10:02       11 阅读
  4. Nginx配置文件-负载均衡

    2024-01-02 20:10:02       7 阅读
  5. Nginx负载均衡详解

    2024-01-02 20:10:02       32 阅读
  6. Nginx 负载均衡配置

    2024-01-02 20:10:02       17 阅读
  7. nginx负载均衡配置

    2024-01-02 20:10:02       14 阅读
  8. Nginx配置负载均衡

    2024-01-02 20:10:02       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-02 20:10:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-02 20:10:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-02 20:10:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-02 20:10:02       20 阅读

热门阅读

  1. skynet 配置中lua服务创建流程

    2024-01-02 20:10:02       28 阅读
  2. MySQL 8.0 ReplicaSet备库切换为可读写单库

    2024-01-02 20:10:02       33 阅读
  3. 头歌:旅游网站大数据分析 - 数据抓取

    2024-01-02 20:10:02       46 阅读
  4. 前端需要学GraphQL 吗?

    2024-01-02 20:10:02       41 阅读
  5. C++精进之路(十二)类和动态内存分配

    2024-01-02 20:10:02       32 阅读
  6. 91 两个数组的交集II

    2024-01-02 20:10:02       37 阅读
  7. 用g2o实现bundle adjustment

    2024-01-02 20:10:02       41 阅读