用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. 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. 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. 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. 20;
34.
35. }
36.
37. server
38. {
39. 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. 20;
51.
52. }
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指令搭配使用)。