用nginx进行同一个服务器下多域名的负载均衡配置
用nginx进行同一个服务器下多域名的负载均衡配置
Nginx进行http负载均衡的模块是upstream
Upstream可以进行多个配置,这样的话可以灵活的配置站点,但是注意的是upstream后面的名字最好是配置成为域名,因为upstream是进行http访问的,一般的解析没有问题,但是如果是ajax的解析就会通过访问upstream后面的名字来进行访问了,这里要注意。
修改配置文件:conf/nginx.conf
- #需要进行负载均衡的站点
- #其中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;
- }
#需要进行负载均衡的站点 #其中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详细配置:
§ 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指令搭配使用)。