Nginx是一款非常流行的Web服务器和反向代理服务器。它的upstream模块是处理反向代理请求的重要组件之一。这篇文章将介绍upstream模块的指令用法,以帮助您更好地理解如何使用Nginx反向代理。
upstream指令
upstream模块的核心是upstream指令。通过upstream指令,您可以定义一组服务器节点,以供反向代理请求时进行负载均衡。下面是upstream指令的基本语法:
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
在这个例子中,我们定义了一个名为backend的反向代理节点,它包含了三个服务器节点,即backend1.example.com、backend2.example.com和backend3.example.com。这些服务器节点将用于反向代理请求。
server指令
在upstream模块中,server指令用于定义一个服务器节点。每个server指令必须包含服务器的地址和端口号。下面是server指令的语法格式:
server address [parameters];
其中,address是服务器的地址和端口号,parameters是可选的策略参数。常用的策略参数包括weight、max_fails、fail_timeout和backup。
- weight:指定服务器节点的权重,默认值是1。权重越高,服务器的流量分配比例就越高。
- max_fails:指定在多少次失败之后将服务器节点标记为不可用,默认值是1。
- fail_timeout:指定在多少秒内尝试失败后将服务器节点标记为不可用,默认值是10秒。
- backup:将服务器节点标记为备份节点,只有在所有非备份节点都不可用时才会转发请求。
下面是一个包含策略参数的server指令的例子:
server backend1.example.com weight=3 max_fails=2 fail_timeout=30s;
这个server指令定义了一个服务器节点,它的地址是backend1.example.com,权重是3,如果在2次尝试后失败,则在30秒内标记为不可用,并且在恢复之前不会再次尝试。