1.主页部署
问题:
http://127.0.0.1:8080是Tomcat默认的主页,
也就是tomcat的应用配置页面,如何把主页部署成我们的项目呢?
方案:
第1步: 在webapps目录下,删除tomcat自带资源
第2步: 将我们的项目war包移到webapps目录下
第3步: 将我们的项目war包改名为ROOT
2.多节点部署
问题:
如何在同一天服务器上开启多个tomcat节点?
问题根源:
开启第1个tomcat节点后,该tomcat节点会占用3个默认端口,
开启第二个tomcat节点时就会发现用到的3个端口被占用,无法开启t第2个tomcat节点
tomcat默认占用的3个端口分别为:
8005 - 负责监听关闭tomcat的命令
8080 - 负责监听浏览器的请求【也就是用户访问请求】
8009 - 负责监听其他服务器转发的请求
方案:
在第2个tomcat节点的conf/server.xml中修改以上3个端口为:未被第一个节点使用的端口号
3.远程部署
问题:
平时uat测试时,通常的部署方式是通过远程工具登录到 uat的节点去更换 war包,重启服务,
但是线上版本这样做,需要给发布者相对应的权限,笔者不久前有一次经历,虽然笔者只有
在linux特定目录下的修改权限,但笔者可以执行shutdown命令,在笔者重启tomcat服务的过
程中,在tomcat的bin目录下输入./shutdown.sh时,错误录入为shutdown导致该服务器节点
关机,因为是云服务,所以笔者是无法自己去开机的,只有邮件反馈这个问题,场面一度时分
尴尬,所以远程部署是有必要的
方案:
通过访问tomcat节点的主页通过页面暂停项目 上传项目 部署项目,避免手动去服务器节点操作
4.中间件外部署
问题:
在一个服务器节点上部署多个tomcat节点时,如果在每个tomcat节点下都拷贝一份war包,一旦
tomcat节点稍多 或者其他人为因素可能导致 各个tomcat节点部署了不同版本的应用
方案1:
针对各个节点:
修改servlet.xml文件,在conf目录下找到servlet.xml文件,在host元素中,添加context元素
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Context path="应用访问路径" docBase="部署web应用源码根目录" reloadable="false"/>
方案2:
针对各个节点:
新建conf/catalina/localhost目录,并在该目录下,新建xml文件,在新建文件中编写context元素
<Context path="应用访问路径" docBase="部署web应用源码根目录" workDir="应用运行时生
成文件存放路径" reloadable="false"/>
5.内存调优
问题:
tomcat默认情况下初始内存较小,容易内存溢出
其默认初始内存(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4
方案:
在tomcat的bin目录下的启动脚本catalina.sh中,开头的地方增加一句修改内存使用:
set JAVA_OPTS='-Xms512m -Xmx1024m'
解释:
-Xms:初始值
-Xmx:最大值
-Xmn:最小值
网友评论