nginx+tomcat 配置负载均衡集群

一、Hello world
1、前期环境准备
  1. 准备两个解压版tomcat,如何同时启动两个tomcat,方法如下:
    首先去apache tomcat官网下载一个tomcat解压版。image
    解压该压缩包,生成n份tomcat 分别命名为 tomcat1,tomcat2,
    image
    然后修改server.xml配置文件,分别进入tomcat/conf/目录,修改server.xml,一共三处。
    image
    第一处:
    image
    第二处、tomcat访问端口号:
    image
    第三处:
    image
    之后修改bin下的启动文件
    分别进入tomcat/bin目录,修改 startup.bat
    在文件第一行添加如下配置(添加时删除#注释,在startup.bat文件中rem代表注释):在文件第一行添加如下配置(添加时删除#注释,在startup.bat文件中rem代表注释):
    1
    2
    3
    4
    5
    6
    7
    # tomcat名称
    set TITLE="tomcat1"
    # tomcat启动路径
    set CATALINA_BASE="D:\tools\tomcat1"
    set CATALINA_HOME="D:\tools\tomcat1"
    # JDK所在路径,如果环境变量已经配置,则可忽略,前提是你所有tomcat要共用一个jdk。另外如果设置,此处路径不能有空格
    SET JAVA_HOME="D:\Java\jdk1.7.0_45"

如图:
image
image
启动tomcat
平常直接双击startup.bat即可,但是为了查看配置信息,可以在cmd中启动,如下图:
image
访问tomcat
在浏览器地址栏输入:http://localhost:8081http://localhost:8082
image

  1. nginx官网下载解压版nginx。
  2. 创建一个简单的web项目。为了直观的区分访问的哪个tomcat,在页面写上标记8081、8082。image
  3. 分别部署到对应的tomcat下。如图:image
    2、配置nginx
    进入nginx-1.10.1\conf路径,修改配置文件nginx.conf。
  4. 配置服务器组,在http{}节点之间添加upstream配置。(注意不要写localhost,不然访问速度会很慢)

    1
    2
    3
    4
    upstream nginxDemo {
    server 127.0.0.1:8081; #服务器地址1
    server 127.0.0.1:8082; #服务器地址2
    }
  5. 修改nginx监听的端口号80,改为8080。

    1
    2
    3
    4
    server {
    listen 8080;
    ......
    }
  6. 在location{}中,利用proxy_pass配置反向代理地址;此处“http://”不能少,后面的地址要和第一步upstream定义的名称保持一致。

    1
    2
    3
    4
    5
    location / {
    root html;
    index index.html index.htm;
    proxy_pass http://nginxDemo; #配置方向代理地址
    }

如下图:
image

3、启动nginx和tomcat,访问

我是Windows系统,所以直接在nginx-1.10.1目录下双击nginx.exe即可。可在任务管理器中查看:
image
最后在浏览器输入地址:http://localhost:8080/nginxDemo/index.jsp,每次访问就会轮流访问tomcat了(如果F5刷新不管用,建议试试鼠标指针放到地址栏,点击Enter键)。
image
image
到这里,一个非常简单的负载均衡就配置完成了。