用nginx进行同一个服务器下多域名的负载均衡配置

用nginx进行同一个服务器下多域名的负载均衡配置

 

Nginx进行http负载均衡的模块是upstream

Upstream可以进行多个配置,这样的话可以灵活的配置站点,但是注意的是upstream后面的名字最好是配置成为域名,因为upstream是进行http访问的,一般的解析没有问题,但是如果是ajax的解析就会通过访问upstream后面的名字来进行访问了,这里要注意。

 

修改配置文件:conf/nginx.conf

 

 

配置文件代码  
  1. #需要进行负载均衡的站点  
  2. #其中server是其中负载均衡的一个节点www.aaa.com  
  3. upstream www.aaa.com {    
  4.         server 192.168.0.1:8080 weight=1;    
  5. server 192.168.0.2:8080 weight=2;  
  6. server 192.168.0.1:8081 weight=3;  
  7.            
  8. }    
  9.   
  10. #第二个网站的www.bbb.com的负载均衡的节点  
  11. upstream www.bbb.com {    
  12.         server 192.168.1.1:8080 ;    
  13. server 192.168.1.2:8080 ;    
  14. server 192.168.1.3:8080 ;    
  15.         ip_hash;    
  16.  }    
  17.   
  18. #同一服务器转发2个不同域名进行负载均衡  
  19. #www.aaa.com的server  
  20. server  
  21.   {  
  22.     listen       80;  
  23.     server_name  www.aaa.com;  
  24.      
  25.         location / {    
  26.             index  index.html index.jsp;    
  27.             #这里的proxy_pass转发的是upstream的名字www.aaa.com  
  28.             proxy_pass  http://www.aaa.com;    
  29.             proxy_set_header    X-Real-IP   $remote_addr;    
  30.             client_max_body_size    100m;    
  31.         }    
  32.           
  33.     #limit_conn   crawler  20;      
  34.       
  35. }  
  36.   
  37. server  
  38.   {  
  39.     listen       80;  
  40.     server_name  www.bbb.com;  
  41.      
  42.         location / {    
  43.             index  index.html index.jsp;    
  44. #这里的proxy_pass转发的是upstream的名字www.bbb.com  
  45.             proxy_pass  http://www.bbb.com;    
  46.             proxy_set_header    X-Real-IP   $remote_addr;    
  47.             client_max_body_size    100m;    
  48.         }    
  49.           
  50.     #limit_conn   crawler  20;      
  51.       
  52. }  
#需要进行负载均衡的站点
#其中server是其中负载均衡的一个节点www.aaa.com
upstream www.aaa.com {  
        server 192.168.0.1:8080 weight=1;  
server 192.168.0.2:8080 weight=2;
server 192.168.0.1:8081 weight=3;
         
}  

#第二个网站的www.bbb.com的负载均衡的节点
upstream www.bbb.com {  
        server 192.168.1.1:8080 ;  
server 192.168.1.2:8080 ;  
server 192.168.1.3:8080 ;  
        ip_hash;  
 }  

#同一服务器转发2个不同域名进行负载均衡
#www.aaa.com的server
server
  {
    listen       80;
    server_name  www.aaa.com;
   
		location / {  
            index  index.html index.jsp;  
			#这里的proxy_pass转发的是upstream的名字www.aaa.com
            proxy_pass  http://www.aaa.com;  
            proxy_set_header    X-Real-IP   $remote_addr;  
            client_max_body_size    100m;  
        }  
		
    #limit_conn   crawler  20;    
    
}

server
  {
    listen       80;
    server_name  www.bbb.com;
   
		location / {  
            index  index.html index.jsp;  
#这里的proxy_pass转发的是upstream的名字www.bbb.com
            proxy_pass  http://www.bbb.com;  
            proxy_set_header    X-Real-IP   $remote_addr;  
            client_max_body_size    100m;  
        }  
		
    #limit_conn   crawler  20;    
    
}

 

 

Upstream的server详细配置:

(具体配置信息查看:http://www.howtocn.org/nginx:nginx%E6%A8%A1%E5%9D%97%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C%E4%B8%AD%E6%96%87%E7%89%88:standardhttpmodules:httpupstream

§  weight = NUMBER - 设置服务器权重,默认为1。

§  max_fails = NUMBER - 在一定时间内(这个时间在fail_timeout参数中设置)检查这个服务器是否可用时产生的最多失败请求数,默认为1,将其设置为0可以关闭检查,这些错误在proxy_next_upstream或fastcgi_next_upstream(404错误不会使max_fails增加)中定义。

§  fail_timeout = TIME - 在这个时间内产生了max_fails所设置大小的失败尝试连接请求后这个服务器可能不可用,同样它指定了服务器不可用的时间(在下一次尝试连接请求发起之前),默认为10秒,fail_timeout与前端响应时间没有直接关系,不过可以使用proxy_connect_timeout和proxy_read_timeout来控制。

§ down - 标记服务器处于离线状态,通常和ip_hash一起使用。

§ backup - (0.6.7或更高)如果所有的非备份服务器都宕机或繁忙,则使用本服务器(无法和ip_hash指令搭配使用)。

posted @ 2016-05-15 18:12  亦非台  阅读(2483)  评论(0编辑  收藏  举报