在该实例片段中,我们设置了两个虚拟服务器和两组后端代理的服务器组,分别用来接收不同的域名请求和对这些请求进行负载均衡处理。如果客户端请求域名为“home.myweb.name”,则服务器server1接收并转向homebackend服务器组进行负载均衡处理;如果客户端请求域名为“bbs.myweb.name”,则由服务器server2接收bbsbackend服务器级进行负载均衡处理。这样就实现了对不同域名的负载均衡。
需要注意两组后端服务器组中有一台服务器server 192.168.1.4:80是公用的。在该服务器上需要部署两个域名下的所有资源才能保证客户端请求不会出现问题。实例代码如下:
...
upstream bbsbackend #配置后端服务器组1
{
server 192.168.1.2:80 weight=2;
server 192.168.1.3:80 weight=2;
server 192.168.1.4:80;
}
upstream homebackend #配置后端服务器组2
{
server 192.168.1.4:80;
server 192.168.1.5:80;
server 192.168.1.6:80;
}
#开始配置server 1
server
{
listen 80;
server_name home.myweb.name;
index index.html index.htm;
location / {
proxy_pass ;
prox_set_header Host $host;
...
}
...
}
#开始配置server 2
server
{
listen 80;
server_name bbs.myweb.name;
index index.html index.htm;
location / {
proxy_pass ;
prox_set_header Host $host;
...
}
...
}
配置实例五:实现带有URL重写的负载均衡首先,我们来看具体的源码,这是在实例一的基础上做的修改:
...
upstream backend #配置后端服务器组
{
server 192.168.1.2:80;
server 192.168.1.3:80;
server 192.168.1.4:80; #默认weight=1
}
server
{
listen 80;
server_name ;
index index.html index.htm;
location /file/ {
rewrite ^(/file/.*)/media/(.*)\.*$) $1/mp3/$2.mp3 last;
}
location / {
proxy_pass ;
prox_set_header Host $host;
}
...
}
该实例片段与“配置一”相比,增加了对URI包含“/file/”的URL重写功能。例如客户端请求的URL为“ ”时,该虚拟服务器首先使用location file/ {......}块转发到后端的backend服务器组中实现负载均衡。这样,就车轻而易举地实现了带有URL重写功能的负载均衡。在该配置方案中,一定要掌握清楚rewrite指令中last标记和break标记的区别,才能达到预计的效果。