1.服务器配置指令
Nginx 负载均衡是由代理模块和上游(upstream)模块共同实现的,Nginx 通过代理模块的反向代理功能将用户请求转发到上游服务器组,上游模块通过指定的负载均衡策略及相关的参数配置将用户请求转发到目标服务器上。上游模块可以与 Nginx 的代理指令(proxy_pass)、FastCGI 协议指令(fastcgi_pass)、uWSGI 协议指令(uwsgi_pass)、SCGI 协议指令(scgi_pass)、memcached 指令(memcached_pass)及 gRPC 协议指令(grpc_pass)实现多种协议后端服务器的负载均衡。
Nginx 上游模块定义了 upstream 指令域,在该指令域内可设置服务器、负载均衡策略等负载均衡配置,配置样例如下,具体指令说明如下面表格中所示。
upstream backend {
server backend1.example.com weight=5; # 被代理服务器端口号为80,权重为5
server backend2.example.com:8080; # 被代理服务器端口号为8080,默认权重为1
server unix:/tmp/backend3;
server backup1.example.com:8080 backup; # 该被代理服务器为备份状态
server backup2.example.com:8080 backup; # 该被代理服务器为备份状态
}
server {
location / {
proxy_pass http://backend; # 将客户端请求反向代理到上游服务器组backend
}
}
名称 | 服务器指令 |
---|---|
指令 | server |
作用域 | upstream |
配置格式 | address[parameters]; |
指令说明 | 设定上游服务器组的服务器地址及连接参数 |
关于上表有以下几点需要注意:
- 服务器地址可以是指定端口的 IP、域名或 Unix 套接字;
- 如不指定端口,默认端口号为 80。
参数 | 参数名称 | 参数类型 | 默认值 | 参数说明 |
---|---|---|---|---|
weight | 权重 |