网络负载均衡技术的大致原理是利用一定的分配策略将网络负载平衡地分配到网络集群的各个操作单元上,使得单个重负载任务能够分担到多个单元上并行处理,或者使得大量并发访问或者数据流量分担到多个单元上分别处理,从而减少用户的等待响应时间。
Nginx服务器实现了静态的基于优先级的加权轮询算法,主要使用的配置是proxy_pass指令和upstream指令。
举个栗子:
….
upstream backend
{
server 192.168.1.2:80 weight=5; #默认权重weight=1
server 192.168.1.3:80 weight=2;
server 192.168.1.4:80 ; #注意上面的三个server中地址也可以同时加上http://
}
server
{
listen 80;
server_name www.myweb.name;
index index.html index.htm;
location / {
proxy_pass http://backend; #如果上面upstrem加上http://则测试可不加。
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_forwarded_for
}
}
上面给的这个例子是Nginx实现基于加权轮询规则的负载均衡,如果我们不设置weight即使用默认的weight=1,则该机制就是一般轮询规则。
由于上面的location/是基于根目录,即对所有的www.myweb.name进行负载均衡,当然我们也可以通过对特定的uri进行负载均衡操作。