nginx.conf的upstream
时间: 2025-01-01 22:25:13 浏览: 9
### Nginx 中 `upstream` 的配置
在 Nginx 配置文件中,`upstream` 块用于定义一组服务器列表,这些服务器可以作为反向代理的目标或是负载均衡的一部分。通过这种方式,Nginx 可以将请求分发到多个后端服务上。
#### 定义 Upstream 块
要创建一个名为 `tomcats` 的 upstream 组,其中包含三个不同的 Tomcat 服务器实例:
```nginx
upstream tomcats {
server 192.168.1.173:8080;
server 192.168.1.174:8080;
server 192.168.1.175:8080;
}
```
对于版本号大于等于 1.11.5 的 Nginx,可以在 `server` 指令后面添加额外的参数来控制连接行为,比如最大并发连接数 `max_conns` 和权重 `weight`:
```nginx
upstream tomcats {
server 192.168.1.173:8080 max_conns=2 weight=5;
server 192.168.1.174:8080 max_conns=2 weight=3;
server 192.168.1.175:8080 max_conns=2 weight=1;
}
```
如果使用的 Nginx 版本低于 1.11.5,则上述带有 `max_conns` 参数的配置仅限于商业版使用[^2]。
为了实现更复杂的负载均衡策略,还可以指定调度算法,例如轮询(默认)、最少连接、IP hash 或者一致性哈希等方法:
```nginx
# 使用 IP Hash 负载均衡方式
upstream backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
```
最后,在 HTTP 或 Stream 上下文中应用此 upstream 设置,以便实际处理来自客户端的流量:
```nginx
http {
...
# 应用 upstream 到 location
server {
listen 80;
server_name example.org;
location / {
proxy_pass http://tomcats;
}
}
...
}
stream {
...
# 对 TCP/UDP 流量进行转发
server {
listen 12345;
proxy_pass backend;
}
...
}
```
以上展示了如何在 nginx.conf 文件内正确地配置 upstream 并将其应用于具体的上下文环境中[^1]。
阅读全文