Nginx HTTP 负载均衡示例

Nginx是一个高性能的HTTP和反向代理服务器,通过其本身的Upstream模块,我们可以将其作为7层负载均衡服务器使用,其支持的负载均衡策略如下:

1,轮询:将请求依次轮询发给每个服务器

2,最少链接:将请求发送给持有最少活动链接的服务器

3,IP哈希:通过哈希函数决定请求发送给哪个服务器

4,权重:服务器的权重越高,处理请求的概率越大

系统整体结构如下:

系统总共使用3台服务器

Nginx安装在ubuntu1上,Nginx的安装参见:

Nginx安装启动

2台Tomcat服务器分别安装在ubuntu2和ubuntu3上,安装步骤如下:

1,安装JDK

上传jdk-7u80-Linux-x64.tar.gz包至服务器

[plain]  view plain  copy
  1. sean@ubuntu2:~$ tar -xzf jdk-7u80-linux-x64.tar.gz  

2,配置环境变量

[plain]  view plain  copy
  1. sean@ubuntu2:~$ vi .bashrc  

在文件最后添加

[plain]  view plain  copy
  1. export JAVA_HOME=/home/sean/jdk1.7.0_80  
  2. export PATH=$JAVA_HOME/bin:$PATH  
  3. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  

3,安装Tomcat

上传apache-tomcat-7.0.70.tar.gz包至服务器

[plain]  view plain  copy
  1. sean@ubuntu2:~$ tar -xzf apache-tomcat-7.0.70.tar.gz  

将Web工程打成war包,并上传至/home/sean/apache-tomcat-7.0.70/webapps路径下

[plain]  view plain  copy
  1. sean@ubuntu2:~/apache-tomcat-7.0.70/webapps$ ll  
  2. total 36  
  3. drwxr-xr-x  8 sean1 sean1 4096 Jul 18 23:46 ./  
  4. drwxrwxr-x  9 sean1 sean1 4096 Jul 18 21:52 ../  
  5. drwxr-xr-x 14 sean1 sean1 4096 Jul 18 21:52 docs/  
  6. drwxr-xr-x  7 sean1 sean1 4096 Jul 18 21:52 examples/  
  7. drwxr-xr-x  5 sean1 sean1 4096 Jul 18 21:52 host-manager/  
  8. drwxr-xr-x  5 sean1 sean1 4096 Jul 18 21:52 manager/  
  9. drwxr-xr-x  3 sean1 sean1 4096 Jul 18 21:52 ROOT/  
  10. drwxrwxr-x  4 sean1 sean1 4096 Jul 18 23:54 Service/  
  11. -rwxrw-rw-  1 sean1 sean1 1367 Jul 18 23:45 Service.war*  

4,启动Tomcat服务器

[plain]  view plain  copy
  1. sean@ubuntu2:~$ cd /home/sean/apache-tomcat-7.0.70/bin/  
  2. sean@ubuntu2:~/apache-tomcat-7.0.70/bin$ ./startup.sh   

访问Tomcat1将会看到

访问Tomcat2将会看到

修改Nginx的配置文件:

[plain]  view plain  copy
  1. worker_processes  1;  
  2.   
  3. events {  
  4.     use  epoll;  
  5.     worker_connections  1024;  
  6. }  
  7.   
  8. http {  
  9.     include       mime.types;  
  10.     default_type  application/octet-stream;  
  11.     sendfile        on;  
  12.     keepalive_timeout  65;  
  13.   
  14.     upstream tomcat_group {  
  15.         # If there is no specific strategy, round-robin  
  16.         #     would be the default strategy.  
  17.         # least_conn;  
  18.         # ip_hash;  
  19.         server 192.168.52.129:8080 weight=1 max_fails=2 fail_timeout=30s;  
  20.         server 192.168.52.130:8080 weight=1 max_fails=2 fail_timeout=30s;  
  21.     }  
  22.   
  23.     server {  
  24.         listen       80;  
  25.         server_name  localhost;  
  26.   
  27.         location / {  
  28.             proxy_pass http://tomcat_group;  
  29.         }  
  30.     }  
  31. }  

配置完成之后就可以启动Nginx服务器了

由于负载均衡策略为round-robin,此时如果我们访问http://192.168.52.128/Service/,会看到页面交替显示This is ubuntu 2!和This is ubuntu 3!


注意下,从nginx v1.9以后,它也支持基于TCP的负载均衡了。而该文是基于HTTP的负载均衡例子,从绿色字体http就知道了。

如果是基于TCP负载均衡,则那个绿色http 地方就会用 stream来代替。

见本博的另外一篇文章关于nginx tcp负载均衡。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值