Windows下使用Tomcat + Nginx搭建测试环境

前言

前几天组内接了个新项目,没有git地址,没有数据库,没有测试环境,一切都要从头开始。这个项目运行的环境是windows系统,tomcat 容器,于是我们先在自己的电脑上试一试搭建环境。我们的项目有两个后端、两个前端。

一、tomcat容器搭建

1.下载安装tomcat

官网下载tomcat,也可网盘自取。

链接:https://pan.baidu.com/s/1rniAr6pykcKLQ3ld9rfP7Q

提取码:u1cm

复制这段内容后打开百度网盘手机App,操作更方便哦

下载下来之后,解压。放在任一磁盘,记住存放位置。接下来就是配置环境变量了。

2.配置环境变量

打开环境变量,在系统变量中点击“新建”,变量名填写:

CATALINA_HOME

变量值填写刚刚解压的tomcat存放路径。

Windows下使用Tomcat + Nginx搭建测试环境_第1张图片
image

接着再点击“新建”,变量名填写:

CATALINA_BASE

变量值填写解压后的tomcat存放路径。

Windows下使用Tomcat + Nginx搭建测试环境_第2张图片
image

然后选中系统变量中的Path变量,点击“编辑”,打开编辑窗口,再点击“编辑文本”,在末尾加上

%CATALINA_HOME%\lib;%CATALINA_HOME%\bin;

点击“确定”,一路返回。

环境变量就配置好了,我们可以通过启动tomcat服务器看有没有配成功。启动tomcat有两种方法。

第一种,进入tomcat目录下,进入bin目录,双击startup.bat文件。

Windows下使用Tomcat + Nginx搭建测试环境_第3张图片
image

第二种,win+r 输入cmd 打开DOS窗口,进入tomcat下的bin目录,输入startup.bat回车,就可以启动tomcat了。

接下来在浏览器地址栏输入

localhost:8080

如果出现一只汤姆猫的页面,恭喜你,tomcat启动成功啦。

Windows下使用Tomcat + Nginx搭建测试环境_第4张图片
image

刚刚说了我们有两个后端服务。所以我在电脑上装了两个tomcat。

将刚才解压的tomcat再复制一份。不要单纯的以为进入bin目录,双击startup.bat文件就可以启动这个服务了,这样启动的还是第一个tomcat的服务。

怎样做才能启动第二个tomcat服务呢?

还是配置环境变量。新建第一个变量:

变量名:CATALINA_HOME1
变量值:第二个tomcat的存放目录

Windows下使用Tomcat + Nginx搭建测试环境_第5张图片
image

新建第二个变量:

变量名:CATALINA_BASE1
变量值:第二个tomcat的存放目录

Windows下使用Tomcat + Nginx搭建测试环境_第6张图片
image

接着编辑path变量的值,在末尾加上:

%CATALINA_HOME1%\lib;%CATALINA_HOME1%\bin;

最后,到bin目录下,修改所有的批处理文件。咋修改呢?将所有的“CATALINA_HOME”,替换成“CATALINA_HOME1”。所有的“CATALINA_BASE”,替换成 “CATALINA_BASE2”。每一个批处理文件,都修改保存。

Windows下使用Tomcat + Nginx搭建测试环境_第7张图片
image

最后,还要去conf目录下修改server.xml文件。主要是修改3个端口。这三个端口不能重复,也不能和第一个tomcat的3个端口重复。

#关闭tomcat通信接口

#建立http连接 用,如浏览器访问

#与其他http服务器通信接口,用于http服务器集合

修改后保存,这样再启动startup.bat,就是第二个tomcat服务了。

两个tomcat都配置好之后,将对应的后端war包,拷贝到对应的tomcat的webapps目录下。tomcat启起来之后会自动解压这个war包。

二、nginx按照部署

1.下载地址

windows版的nginx安装包,网盘自取:

链接:https://pan.baidu.com/s/1Ofjst6JU69OzxRxqfEv_Uw

提取码:ndgk

复制这段内容后打开百度网盘手机App,操作更方便哦

下载后解压即可使用。

2.启动nignx

解压后,有2种方式进行启动:

一、进入nginx目录,双击nginx.exe图标,可见黑窗口一闪而过,启动完毕。

二、命令行进入到nginx目录,输入start nginx启动。

然后打开浏览器输入localhost:80,出现nginx欢迎页面,说明配置没问题启动成功了。

3.配置

nignx的配置文件默认路径为:/conf/nginx.conf

Nginx默认端口是80,现在要通过nginx来反向代理后端的端口为8080的tomcat,配置如下

 //访问第一个后端服务的配置
server {
        listen       8112;//nginx端口号
        server_name  region.his.sso.com;//server名称

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   D:/code/region-his-sso-front;//前端资源地址
            index  index.html index.htm;
      #proxy_pass http://sso_server;
        }
    location /api/ {
                proxy_pass   http://127.0.0.1:8080/his-sso/api/;
                //proxy_pass 代理的tomcat的地址(ip+端口或者域名) 
                //后端服务地址
        }

  }
  
   //访问第二个后端服务的配置
    server {
        listen       8111;
        server_name  region.his.aers.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   D:/code/region-his-aers-front/dist;
            index  index.html index.htm;
      #proxy_pass http://aers_server;
        }
    
    location /api/ {
                proxy_pass   http://127.0.0.1:7070/his-aers/;
        }
  }

再配置一下host:

127.0.0.1 region.his.sso.com
127.0.0.1 region.his.aers.com

修改好配置文件之后保存,命令行输入nginx -s reload重新加载nginx。

常用的命令: 
nginx -v 查看nginx版本 
start nginx启动nginx命令 
nginx -s reload 修改了配置文件后重新reload 
nginx -s stop 立刻停止 
nginx -s quit 优雅地停止

4.浏览器访问

在地址栏输入:region.his.sso.com:8112,就可以访问前端页面了。

Windows下使用Tomcat + Nginx搭建测试环境_第8张图片
image

前端代码中配置了跳转链接http://region.his.aers.com:8111,登录上去之后,就可以跳到第二个前端服务的页面,第一个前端就是登录页面。

三、问题与思考

配置两个tomcat太麻烦了,有没有办法通过一个tomcat启动两个web应用呢?当然有啦~步骤如下:

1.Tomcat的解压文件目录下的conf文件夹中找到server.xml文件

2.找到server.xml文件的最底部的和标签

  

3.上图两个标签之间添加下图代码



    
     
     
     
     
         
             
         
        
         
             
             
             
         
     

4.做完以上修改保存后,返回Tomcat根目录新建一个文件夹(注:该新建文件夹的命名必须和第三步骤3处的appBase的值保持一致,我这里的是webapps2,即文件的命名是webapps2)

5.将需要启动的两个项目war包分别放入webapps和webapps2文件夹中(各放一个),直接启动Tomcat

6.用Tomcat默认的端口(8080)和刚才添加的第三步骤中1处的端口(8081)就可以分别访问两个项目

网上说还可以在Host中新增Context,一个Context代表一个项目,没有实践过,以后有机会再试一试。

你可能感兴趣的:(Windows下使用Tomcat + Nginx搭建测试环境)