Nginx 可以作为一个非常优秀的 HTTP 和反向代理服务器,用于实现负载均衡。以下是一个简单的 Nginx 负载均衡配置示例:
java
nginx
http {
upstream myapp1 {
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://myapp1;
}
}
}
在这个配置中,upstream 指令定义了一个服务器组 myapp1,包含三个后端服务器。在 server 块中,所有到该 Nginx 实例 80 端口的 HTTP 请求都会通过 location / 被代理传递给 myapp1 组的服务器,并且会根据配置的负载均衡策略(默认是轮询)分配到不同的后端服务器。
Nginx 支持多种负载均衡方法,例如:
轮询(默认)
权重(可以指定每个后端服务器处理的请求比例)
java
ip_hash
least_conn(最少连接)
hash
例如,使用权重的配置:
java
nginx
upstream myapp1 {
server srv1.example.com weight=3;
server srv2.example.com;
server srv3.example.com;
}
在这个配置中,srv1.example.com 被赋予了额外的权重,这意味着它将处理大约 3/4 的请求,其他的服务器处理 1/4。
确保在配置文件修改后,重启或重新加载 Nginx 以使配置生效:
java
sudo nginx -s reload