淘淘商城系列——nginx实现负载均衡

来源:互联网 发布:java 深拷贝工具类 编辑:程序博客网 时间:2024/04/30 00:42

通过上文的学习,我相信大家都学会了nginx实现反向代理,本文我们将学习nginx的负载均衡。
现在我们通过一个域名,比如www.sina.com.cn或www.sohu.com访问我们自己的网站,那www.sina.com.cn或www.sohu.com的网站只有一台服务器吗?这个恐怕不一定吧!最起码www.sina.com.cn或www.sohu.com的网站得做tomcat集群,做tomcat集群的目的是什么呢?就是为了把我们这个负载来分配一下,即负载均衡。
为了学习nginx实现负载均衡,首先我们要访问的网站得有多台服务器,比如说我们访问www.sina.com.cn这个网站,www.sina.com.cn这个网站就要有两个tomcat提供服务。所以将用户主目录(即root)下的apache-tomcat-7.0.47复制一份,这样就又能创建一个tomcat实例了,如下图所示。
这里写图片描述
tomcat8083和tomcat8081应该是处理的同样的事。
然后将这个tomcat的端口号给改一下,我们进入tomcat8083的conf目录下(/usr/tomcat8083/conf)修改server.xml文件,依次修改下面这三段配置的port的值,如下所示。

  1. 将port的值由8005改为8008
    这里写图片描述
  2. 将port的值由8080改为8083
    这里写图片描述
  3. 将port的值由8009改为8012
    这里写图片描述

接着我们在nginx配置文件中配置下负载均衡,只需在upstream tomcat8081中添加一行即可,如下图所示。
这里写图片描述
不配置任何负载均衡策略的话,默认是轮询策略,就是机会完全均分,这意味着,当我们访问www.sina.com.cn网站的时候会在两个tomcat之间循环访问。当然了,我们也可以配置其它负载均衡策略,可以根据服务器的实际情况调整服务器权重,权重越高分配的请求越多,权重越低,请求越少。默认是都是1,例如:

upstream tomcat8081 {    server  192.168.25.129:8081;     server  192.168.25.129:8083 weight=2;}

nginx的配置文件修改了之后,要想让其生效,应该怎么办呢?我们需要重启服务或者是重新加载配置文件,如下图所示。
这里写图片描述
为了区分出我们访问的tomcat属于哪个,我们给tomcat8083首页加上标志,需要修改的文件路径是/tomcat8083/webapps/ROOT/index.jsp,tomcat8083的修改如下图所示,在原来的信息后面加上了”-tomcat8083”。
这里写图片描述
接着启动tomcat8083,然后在浏览器地址栏输入www.sina.com.cn,会先看到如下图所示界面。
这里写图片描述
我们刷新一下页面,会看到如下图所示界面,可以看到现在访问的是tomcat8083。
这里写图片描述
这说明负载均衡起作用了。这里提醒一点的是,如果是自己创建的三台安装tomcat虚拟机的话,很有可能遇到轮询只起一次作用的情况(就是先显示访问tomcat8081的首页后,刷新页面再显示tomcat8083的首页,之后一直显示tomcat8083的首页),这种情况我们不必理会它,这可能是VMware虚拟软件本身的bug,因为我用实际的服务器去测试就完全没有问题。

原创粉丝点击