Nginx管理tomcat集群、session共享

1、windows系统下。我们下载tomcat,解压到硬盘里,并且复制一份,文件夹一个叫做tomcat-1,一个叫做tomcat-2。再下载nginx,放在硬盘里。

2、这3个其实都是服务器程序。我们直接点击nginx里面的exe文件可以打开nginx,win10下因为80端口冲突我们修改了nginx的端口号为8088。打开后我们在浏览器里localhost:8088可以打开欢迎页面。

——我们可以打开tomcat-1/bin/startuo.bat,就算是开启了tomcat的服务器,它的默认端口是8080。输入localhost:8080可以看到欢迎页面。

——另一个tomcat-2,我们先修改了它的配置文件里面的端口号为8081,不然端口会冲突,无法启动。修改之后我们启动在浏览器输入localhost:8081可以看到欢迎页面。

——测试的时候,可以把这3个都开启,同时在浏览器中打开这3个欢迎页面。为了区别两个tomcat的欢迎页面,我们可以在ROOT里面的index.jsp页面上做一些修改。

2、既然3个服务器程序都准备就绪并且可以正常启动和访问。下一步就是用Nginx来代理2个tomcat,即所谓的管理tomcat集群。

——我们在Nginx的conf的nginx.conf文件中做如下修改:

    upstream server_lb{
        server 127.0.0.1:8080;
        server 127.0.0.1:8081;
    }

    server {
        listen       8088;
        server_name  localhost;
        ……
        location / {
            root   html;
            proxy_pass  http://server_lb;
            index  index.html index.htm;
        }
        }

——server_name相当于我们在浏览器中输入的域名,端口号默认是80,也就是可以省略,但是因为win10的冲突被我们改为8088了,所以我们在浏览器中输入localhost:8088才能访问。

——下面location里面的意思是我们是html文件夹里面找index.html等默认文件。但是我们后来增加了proxy_pass http://server_lb;,说明我们不是去找默认文件了,而是去server_lb这个服务器集群地址里面去找,这个是服务器集群是在upstream里面定义的,里面有2个,所以本质上是随机访问任何一个,概率是相同的。当然我们可以修改权重来改变访问每个服务器的频率。

    upstream server_lb{
        server 127.0.0.1:8080 weight=10;
        server 127.0.0.1:8081 weight=5;
    }

备注:上面的那些操作,我们没有做环境变量的配置。

3、虚拟目录。配置默认的应用。比如我们有一个web project。我们把WebRoot里面的几个文件拷贝到新建的一个文件夹里(E:\myApp),那么这个目录就是我们应用的真是目录,我们需要配置它。然后我们在tomcat-1/conf/Catalina/localhost/下面新建一个ROOT.xml,里面:


<Context docBase="e:\myApp" />

——把这个文件复制到tomcat-1/conf/Catalina/localhost/下面,因为我们想不论经过那个tomcat都能引导访问这个应用。就OK了。我们这个时候启动Nginx和两个tomcat,然后访问Nginx的欢迎页面就会跳转到任意一个tomcat,继而访问到我们的真是目录下面的jsp页面。

4、共享session暂时搁置,后续利用其它技术来实现。

你可能感兴趣的:(Java,tomcat,nginx)