配置实例三:对特定资源实现负载均衡

在该实例片段中,我们设置了两组被代理的服务器组,名为“videobackend”的一组用于对请求video资源的客户端请求进行负载均衡,另一组用于对请求file资源的客户端请求进行负载均衡。

通过对location块uri的不同配置,我们就很轻易地实现了对特定资源的负载均衡。所有对“http://www. myweb.name/video/”的请求都会在videobackend服务器组中获得均衡效果,所有对“http://www.myweb.name/file/”的请求都会在filebackend服务器组中获得均衡效果。

在location /file/ {……}块中,我们将客户端的真实信息分别填充到了请求头中的“Host”、“X-Real-IP”和“X-Forwarded-For”头域,这样后端服务器组收到的请求中就保留了客户端的真实信息,而不是Nginx服务器的信息

#其他配置
upstream videobackend                                        #配置后端服务器组1
{
  server 192.168.1.2:80;
  server 192.168.1.3:80;
  server 192.168.1.4:80;
}
upstream filebackend                                         #配置后端服务器组2
{
  server 192.168.1.5:80;
  server 192.168.1.6:80;
  server 192.168.1.7:80;
}
server
{
  listen 80;
  server_name  www.myweb.name;
  index  index.html  index.htm;
  location  /video/  {
    proxy_pass  http://videobackend;                          #使用后端服务器组1
    proxy_set_header  Host  $host;

  }
  location  /file/  {
    proxy_pass  http://filebackend;                           #使用后端服务器组2
                                                        #保留客户端的真实信息
    proxy_set_header  Host  $host;
    proxy_set_header  X-Real-IP  $remote_addr;
    proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;

  }

}

Last updated