写点什么

你知道怎么在生产环境下部署 tomcat 吗?,五年 java 开发经验面试

用户头像
极客good
关注
发布于: 刚刚

drwxr-xr-x. 9 root root 220 5 月 8 19:23 apache-tomcat-8.5.40


lrwxrwxrwx. 1 root root 20 5 月 8 16:42 tomcat -> apache-tomcat-8.5.40


这样以后用 tomcat 应用路径,就直接使用 tomcat 这个软链接,即使将来 tomcat 升级只要修改一些软链接就行了,其他就不需要改。

目录分离

我们应该要把 tomcat 和 web 应用目录分离出来,即使 tomcat 升级也跟 web 应用没有关系。那分离出来,怎么启动呢?


我们要利用启动参数中的 CATALINA_HOME 和 CATALINA_BASE,来指定 tomcat 程序应用和 web 应用;通过 CATALINA_BASE 就可以实现 web 应用分离出去,我们来看一些 tomcat 一共有哪些启动参数



我们先在/usr/local 目录下新建一个 web-apps 目录,此目录就放 web 应用

mkdir web-apps

ll

lrwxrwxrwx. 1 root root 20 5 月 8 16:42 tomcat -> apache-tomcat-8.5.40drwxr-xr-x. 2 root root 6 5 月 8 20:29 web-apps


在 web-apps 目录下,新建 web-a 和 web-b 目录,这两个目录就是 web-A 和 web-b 的 web 应用目录。

cd web-apps/

mkdir web-a

mkdir web-b

ll

drwxr-xr-x. 2 root root 6 5 月 8 20:33 web-adrwxr-xr-x. 2 root root 6 5 月 8 20:33 web-b


把 tomcat 程序中的 conf 目录拷贝到 web-a 和 web-b 里面,这样各个 web 应用都有各自的配置文件。

cp -r /usr/local/tomcat/conf /usr/local/web-apps/web-a/

cp -r /usr/local/tomcat/conf /usr/local/web-apps/web-b/

再在 web-a 和 web-b 目录下,新建 webapps 和 logs 目录,webapps 存放 web 应用,logs 存放日志文件。


到此目录分离开了,但还缺少一个启动脚本


五、启动脚本


此启动脚本,老顾引用了网上的一个脚本改造了一下,命名为 tomcat.sh


#!/bin/bashexport JAVA_OPTS="-Xms100m -Xmx200m"export JAVA_HOME="/usr/java/jdk1.8.0_181"export CATALINA_HOME="/usr/local/tomcat"export CATALINA_BASE="pwd"


case CATALINA_HOME/bin/catalina.sh startecho start success!!;;stop)CATALINA_HOME/bin/catalina.sh stopecho stop success!!sleep 2CATALINA_HOME/bin/catalina.sh version;;configtest)$CATALINA_HOME/bin/catalina.sh configtest;;esacexit 0


脚本比较简单,核心就是启动参数,只要注意 CATALINA_BASE="pwd"的意思是,执行脚本的路径,也就是代表 web 应用路径是脚本执行的路径;再把 tomcat.sh 设置一些启动权限 # chmod +x tomcat.sh?。


修改 conf 下的 server.xml


<Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true">


<Context path="/" docBase="" reloadable="true" />


<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log" suffix=".txt"pattern="%h %l %u %t "%r&qu


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


ot; %s %b" /></Host>


修改了红色字体部分,host 中的 appBase 是相对 CATALINA_BASE 的路径,就是 web 应用的路径,context 中的 path 是请求 url,docBase 也是相对路径,相对于 appBase 的,当然也可以设置绝对路径。在 web-a 下创建 index.html 文件


到现在为止的 web-a 的目录下

ll

drwx------. 3 root root 254 5 月 8 22:05 confdrwxr-xr-x. 2 root root 197 5 月 8 21:27 logs-rwxr-xr-x. 1 root root 598 5 月 8 21:21 tomcat.shdrwxr-xr-x. 2 root root 24 5 月 8 21:25 webapps

ll webapps/

-rw-r--r--. 1 root root 12 5 月 8 21:25 index.html


启动 tomcat.sh

./tomcat.sh start

访问?http://192.168.31.150:8080/?就 ok 了,直接返回了 index.html 里面的内容。

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
你知道怎么在生产环境下部署tomcat吗?,五年java开发经验面试