负载均衡策略:Nginx支持多种负载均衡策略,包括轮询(默认)、加权轮询、IP哈希、最少连接等。
负载均衡策略的选择
- 轮询:适用于服务器性能相近的场景。
- 加权轮询:适用于服务器性能差异较大的场景。
- IP哈希:适用于需要保持用户会话一致性的场景。
- 最少连接:适用于请求处理时间不一致的场景。
轮询(默认):将请求按顺序轮流分配给后端服务器。
http {
upstream backend {
server server1.example.com;
server server2.example.com;
}
server {
location / {
proxy_pass http://backend;
}
}
}
加权轮询:根据服务器的权重分配请求,权重越高,分配到的请求越多。
upstream backend {
server server1.example.com weight=1;
server server2.example.com weight=2;
}
IP哈希:确保来自同一客户端的请求被分配到同一服务器,以保持会话的稳定性。
upstream backend {
ip_hash;
server server1.example.com;
server server2.example.com;
}
最少连接:将请求分配给连接数最少的服务器,适用于请求处理时间长短不一的场景。
upstream backend {
least_conn;
server server1.example.com;
server server2.example.com;
}
下面示例同一个域名轮询使用不同ip地址的服务器
http {
upstream backend {
server 192.168.1.100:80;
server 192.168.1.101:80;
server 192.168.1.102:80;
}
...
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
}
}