Nginx 之Upstream使用详解


1. 概述

Nginx 的 ngx_http_upstream_module 模块用于定义服务器组,这些服务器组可以被 proxy_passfastcgi_passuwsgi_passscgi_passmemcached_passgrpc_pass 指令引用。该模块为反向代理提供了负载均衡和故障转移等重要功能。

2. 配置示例及指令说明

2.1 配置示例

# 定义一个名为 'backend' 的 upstream 组,用于负载均衡和故障转移
upstream backend {
    # 将请求分发到 backend1.example.com,权重为 5,意味着它将接收更多的流量
    server backend1.example.com weight=5;
    
    # 将请求分发到 backend2.example.com 的 8080 端口
    server backend2.example.com:8080;
    
    # 通过 UNIX 套接字将请求分发到本地的 backend3 服务
    server unix:/tmp/backend3;
    
    # 定义两个备份服务器,仅当主服务器不可用时才会被使用
    server backup1.example.com:8080 backup;
    server backup2.example.com:8080 backup;
}

# 定义一个 server 块,用于监听进来的 HTTP 请求
server {
    # 定义 location 块,匹配所有 URI(/ 表示根路径)
    location / {
        # 使用 proxy_pass 指令将请求转发到定义的 upstream 'backend' 组
        proxy_pass http://backend;
    }
}

这段配置定义了一个上游服务器组 backend,其中包含三台主服务器和两台备份服务器。主服务器中,backend1.example.com 被赋予了更高的权重,意味着它将处理更多的请求。backend2.example.com 和通过 UNIX 套接字通信的 backend3 被设置为默认权重。当主服务器不可用时,请求将被转发到备份服务器 backup1.example.combackup2.example.com

server 块中,所有进入的请求(由于 location / 匹配所有 URI)都将通过 proxy_pass 指令被转发到 backend 上游服务器组。这意味着 Nginx 将

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值