前言
前几天组内接了个新项目,没有git地址,没有数据库,没有测试环境,一切都要从头开始。这个项目运行的环境是windows系统,tomcat 容器,于是我们先在自己的电脑上试一试搭建环境。我们的项目有两个后端、两个前端。
一、tomcat容器搭建
1.下载安装tomcat
官网下载tomcat,也可网盘自取。
链接:https://pan.baidu.com/s/1rniAr6pykcKLQ3ld9rfP7Q
提取码:u1cm
复制这段内容后打开百度网盘手机App,操作更方便哦
下载下来之后,解压。放在任一磁盘,记住存放位置。接下来就是配置环境变量了。
2.配置环境变量
打开环境变量,在系统变量中点击“新建”,变量名填写:
CATALINA_HOME
变量值填写刚刚解压的tomcat存放路径。
接着再点击“新建”,变量名填写:
CATALINA_BASE
变量值填写解压后的tomcat存放路径。
然后选中系统变量中的Path变量,点击“编辑”,打开编辑窗口,再点击“编辑文本”,在末尾加上
%CATALINA_HOME%\lib;%CATALINA_HOME%\bin;
点击“确定”,一路返回。
环境变量就配置好了,我们可以通过启动tomcat服务器看有没有配成功。启动tomcat有两种方法。
第一种,进入tomcat目录下,进入bin目录,双击startup.bat文件。
第二种,win+r 输入cmd 打开DOS窗口,进入tomcat下的bin目录,输入startup.bat回车,就可以启动tomcat了。
接下来在浏览器地址栏输入
localhost:8080
如果出现一只汤姆猫的页面,恭喜你,tomcat启动成功啦。
刚刚说了我们有两个后端服务。所以我在电脑上装了两个tomcat。
将刚才解压的tomcat再复制一份。不要单纯的以为进入bin目录,双击startup.bat文件就可以启动这个服务了,这样启动的还是第一个tomcat的服务。
怎样做才能启动第二个tomcat服务呢?
还是配置环境变量。新建第一个变量:
变量名:CATALINA_HOME1
变量值:第二个tomcat的存放目录
新建第二个变量:
变量名:CATALINA_BASE1
变量值:第二个tomcat的存放目录
接着编辑path变量的值,在末尾加上:
%CATALINA_HOME1%\lib;%CATALINA_HOME1%\bin;
最后,到bin目录下,修改所有的批处理文件。咋修改呢?将所有的“CATALINA_HOME”,替换成“CATALINA_HOME1”。所有的“CATALINA_BASE”,替换成 “CATALINA_BASE2”。每一个批处理文件,都修改保存。
最后,还要去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
,就可以访问前端页面了。
前端代码中配置了跳转链接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代表一个项目,没有实践过,以后有机会再试一试。