以下是一个完整的 Nginx 配置示例,实现反向代理与负载均衡功能。假设需要将请求分发到三个后端服务器
·
配置反向代理与负载均衡
以下是一个完整的 Nginx 配置示例,实现反向代理与负载均衡功能。假设需要将请求分发到三个后端服务器(backend1.example.com、backend2.example.com、backend3.example.com),并采用轮询(round-robin)负载均衡策略。
upstream backend_servers {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://backend_servers;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
upstream 块定义了后端服务器组,默认使用轮询策略。可通过权重或不同策略调整流量分配:
upstream backend_servers {
server backend1.example.com weight=3;
server backend2.example.com;
server backend3.example.com backup;
}
proxy_set_header 指令确保后端服务器能获取原始请求信息。X-Forwarded-For 保留客户端真实 IP,Host 传递原始域名。
可选负载均衡策略
除默认轮询外,Nginx 支持其他策略:
upstream backend_servers {
least_conn; # 最少连接数优先
server backend1.example.com;
server backend2.example.com;
}
或使用 IP 哈希保持会话粘性:
upstream backend_servers {
ip_hash;
server backend1.example.com;
server backend2.example.com;
}
健康检查配置
添加健康检查确保只将请求路由到健康节点:
upstream backend_servers {
server backend1.example.com max_fails=3 fail_timeout=30s;
server backend2.example.com;
}
max_fails 设定失败次数阈值,fail_timeout 定义暂停路由时间。
更多推荐




所有评论(0)