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

前言

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

一、tomcat容器搭建

1.下载安装tomcat

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

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

提取码:u1cm

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

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

2.配置环境变量

打开环境变量,在系统变量中点击“新建”,变量名填o ? r 1 p 5写:

CATALINA_HOME

变量值填写刚; 5 4 i e 刚解压的tomcat存放路径。

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

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

CATALINA_BASE

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

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

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

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

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

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

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

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

第二种,win+r 输入cmd 打开DOS窗口,进入tomcat下的bin目录,输入s* = R c m W Wtartup.bat回车,就可以启动tomcat了。

接下u . 0 l来在浏览器地址栏输入

localhost:8080

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

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

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

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

怎样做才$ J ( , U } }能启动第二个tomcat服务呢?

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

变量名:Cp Q u EATALINA_HOME1
变量值:第二个tomcat的存放目录

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

新建第二个变量:

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

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

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

%CATALINA_HOME1%\( o 9 { } |lib;%CATALINA_HOME15 8 z 9 L%\bin;

最后,到bin目录下] w v 5,修改所有的批处理文件。咋修改呢?将所有的“CATALINA_HOME”,替换成“CATALINA_HOME1”。所有的“CAT0 , g HALINA_BASE”,替换成 “CATALINA_BASE2”。每一个批处理文件a t R,都修改保存。

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

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

#关闭tomcat通信接口
<Servz h % s 5 N 0 |er pob R C I 7 2rt="7005" shutdown="SHD ^ i V s ~ ! FUTDOWN">
#建立http连接 用,如浏览器访问
<Connector port="7070" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
#与其他http服务器通信接口,用于http服务器集合
<Connector port="7009" protocol="AJP/1.3" redirectPoq B ? K R : ]rt="84g z t n Z 0 `43h P 4 Y" />

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

两个tomcat都配置好之后,将对应的后端war包,拷贝到对应的tomcat的webapps目录下。tomc+ 3 ` a 5 / 6 ^at启起来之后会自动解压这个war包。

二、nginx按照部署

1.下载地址

windt s Q J + i Gows版的nginx安装包,网盘自取:

链接:ht+ t t 0 ctps://pan.baidu.com/s/1Ofjst6JU69OzxRxqfEv_Uw

提取码:ndgk

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

下载后解压即可使e ~ } ! # K [用。

2.启动nignx

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

X ! 1 Z、进入nginx目录,双击nginx.ex1 f = , he图标,可见黑窗口一闪而过,启动完毕。

二、命令行进入到nginx目录,输入stag % . | * % 2 0rt nginx启动。

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

3.配置

nignx的配置文件默z # B V 0 # Z认路径为:/conf/nginx.conf

Nginx默认端口l D 9 { M L 4是8; R :0,现在要通过nginx来反向代理后端的端口为8080的tomcat,配置如下

 //访问第一个后端服务的配置
server {
listen       8112;//nginx端口号
server_name  region.his.sso.com;//server名称
#charsw G ` % Yet koi8-o . Q ] 2 ` . Kr;
#access_log  logs/host.access.log  main;
location / {
root   D:/codr t m Re/- L yregion-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 代理的tomcz  ^ N t 6 : +at的地址(ip+端口或者域名)
//后端服务地址) c U W
}
}
//访问第二个后端服务的配置
server {
listen       8111;
sel c y g k s z Brver_name  regim C a ~ Y $ O Von.his.aers.k ! _com;
#charset koi8-r;
#aB C ) 1 3 U Tccess_log  logs/host.access.log  main;
locati[ H J { S X L Jon / { D ) ; d L U
root   D:/code/region-his-aers-f? : :ront/dist;
indn Q  )ex  index.html index.htm;
#pro} e U gxy_pass http://aers_server;
}
location /api7 0 ? 3/ {
proxy_pass   http://127.0.0.1:7070/+ $ Rhis-aers/;
}
}

再配置一下host:

127.0.0.1 region.his.sso.com
127.0.0.1 region.his.ael d k : ! Drs.com

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

常用的命令:
nginx -v 查看nginx版本
starT t H i 5 8 f e ft nginx启动nginx命令
nginx -s reload 修改了配置文件后重新reload
nginx -s stop 立刻停止
nginx -s quit 优雅地停止

4.浏览器访问

在地址栏输入:region.his9 b 1 x , n [ B.sso.com:8112,就可以访问前端页面了L 8 t i E - ] m 8

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

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

三、问题与思考

配置C m N w { x ] V两个tomcat太麻烦了,有没有办法通过一个tomcat启动两个web应P 9 1 F 2 } f h用呢?当然有啦~步骤如下:

1.Tomcat的解压文件目K 3 ] & | O M ? W录下的conf文件夹中找到server.xml文件

2.找到server.xml文件的最底部的</Service>和</Server>标签

  </Service>
</Server>

3.上图两个标签之间Q Z , ! U 4 B添加下图代码

<Service name="Catalina">
<!--1.修改port为想要的访问端口号,不能与已有的8080重复 -->
<Connectorv [ ) ( V % | ; i port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<!--2.修改port为想要的端口号,不能与| L 0 { n )已有的8009重复 -->
<Connector porti w s X ~ | U O X="8010)  5" protocol="AJP/1.3" redirectPort="8443" /&g= T e $ 6 m K rt;
<Engine name="Catd W # z 5alina" defaultHos_ v 0 y 4t="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">M Q g C p L
<Realm className@ r 8 :="org.a] [ b o cpache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
&li 4 k -t;/Realm>
<!--3.修改appBase的值,值不能与已有的webapps重复 -->
<Host name="localhost" appBase="webapps2" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log W K r 8 B @g." suffix=".txt" pattern="%h %l %u %t "%% | X 5 l 6r" %s %b" />
&t ; j e _ y / flt;!--4.修改path和docBase为需要启动的第二个项目名 -->
<Context path="/项目名" reloadable="true" docBase="/项目名"/p Q P P 0 n 8 3>
</Host>
</Engine&gN 6 N _t;
</R k 8 1Service>

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

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

6.用Tomcat默2 | _ W H , T :认的端口(8080)和刚才添加的第三步骤中1x G @ % ( a f处的端口(8081)就可以分别访问两个项目

网上说还可以在Host中新增Context,一个CR J T . 1 & V Honte! m 0 [ % 0 $xt代表一个项目,没有实践过,以后有机会再试一试。