tomcat应用部署

tomcat的根目录结构

Tomcat中默认网站根目录是$CATALINA_BASE/webapps/

在Tomcat中部署主站应用程序和其他应用程序,和之前WEB服务程序不同。

nginx
假设在nginx中部署2个网站应用eshop、forum,假设网站根目录是/data/nginx/html,那么部署可以是这样的。
eshop解压缩所有文件放到/data/nginx/html/目录下,bbs的文件放在/data/nginx/html/forum/下。

最终网站链接有以下对应关系

http://localhost/ 对应于eshop的应用,即 /data/nginx/html/
http://localhost/forum/ 对应于forum的应用,即/data/nginx/html/forum/

Tomcat
Tomcat中默认网站根目录是$CATALINA_BASE/webapps/
在Tomcat的webapps目录中,有个非常特殊的目录ROOT,它就是网站默认根目录。
将eshop解压后的文件放到这个$CATALINA_BASE/webapps/ROOT中。
bbs解压后文件都放在$CATALINA_BASE/webapps/forum目录下。

最终网站链接有以下对应关系

http://localhost/ 对应于eshop的应用,即CATALINA_BASE/webapps/ROOT/目录
http://localhost/forum/ 对应于forum的应用,即CATALINA_BASE/webapps/forum/

如果同时存在$CATALINA_BASE/webapps/ROOT/forum,仍以$CATALINA_BASE/webapps/forum/优先生效

每一个虚拟主机的目录都可以使用appBase配置自己的站点目录,里面都可以使用appBase目录下的ROOT目录作为主站目录。

JSP WebApp目录结构
  • 主页配置:默认按以下顺序查找主页文件index.html,index.htm、index.jsp
  • WEB-INF/:当前WebApp的私有资源路径,通常存储当前应用使用的web.xml和context.xml配置文件
  • META-INF/:类似于WEB-INF,也是配置信息,浏览器无法访问
  • classes/:类文件,当前webapp需要的类
  • lib/:当前应用依赖的jar包
主页设置
修改默认主配置文件

默认情况下,/usr/local/tomcat/webapps/ROOT/下添加一个index.html文件,观察访问到了什么?
将/usr/local/tomcat/conf/web.xml中的下面<welcome-file-list>标签内容(默认页)进行修改

[root@centos8 tomcat]#echo '<h1>www.magedu.org</h1>' > webapps/ROOT/index.html
[root@centos8 tomcat]#curl http://127.0.0.1:8080/
<h1>www.magedu.org</h1>

[root@centos8 tomcat]#tail conf/web.xml
  <!-- here, so be sure to include any of the default values that you wish  -->
  <!-- to use within your application.                                       -->

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

</web-app>
[root@centos8 tomcat]#vim conf/web.xml
[root@centos8 tomcat]#tail conf/web.xml
  <!-- here, so be sure to include any of the default values that you wish  -->
  <!-- to use within your application.                                       -->

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

</web-app>
[root@centos8 tomcat]#systemctl restart tomcat
[root@centos8 tomcat]#curl http://127.0.0.1:8080/
修改webAPP的专用配置文件

将上面主配置文件conf/web.xml中的<welcome-file-list>标签内容,复制到/usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml中,如下

[root@centos8 tomcat]#vim webapps/ROOT/WEB-INF/web.xml 
[root@centos8 tomcat]#cat webapps/ROOT/WEB-INF/web.xml 
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1"
  metadata-complete="true">

  <display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>
#配置修改后,无需重启tomcat服务,即可观察首页变化
[root@centos8 tomcat]#curl http://127.0.0.1:8080/

配置 规则:

  • webApp的专有配置优先于系统的全局配置
  • 修改系统的全局配置文件,需要重新启动服务生效
  • 修改 webApp的专有配置,无需重启即可生效
应用部署实现
webapp归档格式
  • .war:WebApp打包
  • .jar:EJB类文件的打包压缩类zip格式文件,网景公司发明
  • .rar:资源适配器类打包文件,目前已不常用
  • .ear:企业级WebApp打包,目前已不常用

传统应用开发测试后,通常打包为war格式,这种文件部署到了Tomcat的webapps目录下,还可以自动展开。

#conf/server.xml中文件配置
<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
部署Deploy
  • 部署:将webapp的源文件放置到目标目录,通过web.xml和context.xml文件中配置的路径就可以访问该webapp,通过类加载器加载其特有的类和依赖的类到JVM上,即:最终用户可以通过浏览器访问该应用
    • 自动部署:Tomcat一旦发现多了一个web应用APP.war包,默认会自动把它解压缩,加载并启动起来
    • 手动部署
    • 冷部署:将webapp放到指定目录,才去启动Tomcat
    • 热部署:Tomcat服务不停止,需要依赖manager、ant脚本、tcd(tomcat client deployer)等工具
  • 反部署undeploy:停止webapp的运行,并从JVM上清除已经加载的类,从Tomcat应用目录中移除部署的文件
  • 启动start:是webapp能够访问
  • 停止stop:webapp不能访问,不能提供服务,但是JVM并不清除它
部署目录结构

常见开发项目目录组成

#目录结构一般由开发用工具自动生成,以下模拟生成相关目录
mkdir projects/myapp/{WEB-INF,META-INF,classes,lib} -pv
mkdir: 已创建目录 "projects"
mkdir: 已创建目录 "projects/myapp"
mkdir: 已创建目录 "projects/myapp/WEB-INF"
mkdir: 已创建目录 "projects/myapp/META-INF"
mkdir: 已创建目录 "projects/myapp/classes"
mkdir: 已创建目录 "projects/myapp/lib"

#常见应用首页,内容就用前面的test.jsp内部
vi projects/myapp/index.jsp 

#手动复制项目目录到webapps目录下去
cp -r projects/myapp/ /usr/local/tomcat/webapps/

#使用http://YourIP:8080/myapp/访问试试看

本文链接:http://www.yunweipai.com/35133.html

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/52738.html

(0)
上一篇 2021年8月6日
下一篇 2021年8月6日

相关推荐

发表回复

登录后才能评论