你知道怎么在生产环境下部署tomcat吗?,Java架构面试题spring原理

我们先把tomcat应用放到/usr/local目录下

# cd /usr/local

# ll

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

上面我们是应用了tomcat8.5版本,如果我们需要升级到9.x版本的话,如果我们需要升级到9.x版本的话,那关于tomcat目录的路径就需要重新修改,这就太不方便了,所以我们可以用软链接的方式解决这个问题

# ln -s apache-tomcat-8.5.40 tomcat

# ll

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一共有哪些启动参数

启动参数描述说明
JAVA_OPTjvm启动参数,设置内存 编码等-Xms100m -Xmx200m -Dfile.encoding=UTF-8
JAVA_HOME指定jdk目录
CATALINA_HOMEtomcat程序根目录
CATALINA_BASE应用部署目录,默认为 $CATALINA_HOME
CATALINA_OUT应用日志输出目录,默认为$CATALINA_BASE/logs
CATALINA_TMPDIR应用临时目录,默认为$CATALINA_BASE/temp

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

# mkdir web-apps
# ll
lrwxrwxrwx.  1 root root   20 5月   8 16:42 tomcat -> apache-tomcat-8.5.40
drwxr-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-a
drwxr-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/bash
export JAVA_OPTS="-Xms100m -Xmx200m"
export JAVA_HOME="/usr/java/jdk1.8.0_181"
export CATALINA_HOME="/usr/local/tomcat"
export CATALINA_BASE="`pwd`"

case $1 in
	start)
		$CATALINA_HOME/bin/catalina.sh start
		echo start success!!
		;;
	stop)
		$CATALINA_HOME/bin/catalina.sh stop
		echo stop success!!
		;;
	restart)
		$CATALINA_HOME/bin/catalina.sh stop
		echo stop success!!
		sleep 2
		$CATALINA_HOME/bin/catalina.sh start
		echo start success!!
		;;
	version)
		$CATALINA_HOME/bin/catalina.sh version
		;;
	configtest)
		$CATALINA_HOME/bin/catalina.sh configtest
		;;
esac
exit 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 &quot;%r&quot; %s %b" />
</Host>

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

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

结语

小编也是很有感触,如果一直都是在中小公司,没有接触过大型的互联网架构设计的话,只靠自己看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。

我们选择的这个行业就一直要持续的学习,又很吃青春饭。

虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。

CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】

送给每一位想学习Java小伙伴,用来提升自己。

在这里插入图片描述

题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**

送给每一位想学习Java小伙伴,用来提升自己。

[外链图片转存中…(img-GHs8HubH-1631106014521)]

本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值