Tomcat自定义部署

来源:互联网 发布:怎样下载淘宝网到桌面 编辑:程序博客网 时间:2024/06/12 03:20

首先,需要把apache=tomcat安装目录里面的

bin/conf/logs/webapps/work/

都拷贝到自定义WEB应用目录下,比如 /home/app/test.aliyun.com/,这个目录以后就是部署该项目的操作目录,下面用yourdomain来代替。

文件夹部署方式(非war包)

方式一 默认配置,直接扔包:

在webapps下面建立ROOT目录,此ROOT目录为tomcat默认根网站的目录,ROOT名称区分大小写,必须为大写

将应用程序的war包解压后放到ROOT目录下,此时webapps底下的目录应该为这种形式

yourdomain/webapps/ROOT/* (*代表WEB-INF等)

不需要修改yourdomain/conf/server.xml文件。

然后在yourdomain/bin/目录下创建start和stop的shell文件

文件内容如下:

start.sh 

export CATALINA_BASE=/home/user/app/test.aliyun.com/ export CATALINA_HOME=/home/app/apache-tomcat-7.0.62/export JAVA_OPTS="$JAVA_OPTS -Xloggc:/home/appuser/app/test.aliyun.com/logs/temp_gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/user/app/test.aliyun.com/logs/“ cd $CATALINA_HOME/bin ./startup.sh jpda tail -fn 500 /home/user/app/testjx.aliyun.com/logs/catalina.out

stop.sh

ps -ef | grep test.aliyun.com | grep -v 'grep' | awk '{print $2}' |xargs kill -9

这两个文件在以下流程中通用。

然后启动就可以


方式二 修改webapps下文件路径:

在 yourdomain/webapps/下创建文件夹,比如 yourdomain/webapps/yourAppName ,

然后把ROOT目录删除,将web应用的内容拷贝到yourAppName目录下,此时webapps目录应该为这种形式

yourdomain/webapps/yourAppName/* (*代表WEB-INF等)

由于此时默认的ROOT目录没有了,但因为webapps下面有文件夹,所以会把yourAppName里面的内容当做一个web应用加载并启动起来,

虽然web应用启动了,但是访问的时候会出现404错误,这是因为访问的时候tomcat默认去ROOT下面寻找资源,而ROOT已删除,则资源肯定是查找不到的

此时我们需要配置

conf/server.xml

在<Host name=“localhost”  一栏下面加上

<Context path="/" docBase="/home/appuser/app/testjx.aliyun.com/webapps/yourAppName" debug="0" reloadbale="true" privileged="true"> </Context>

将根路径从原来默认的ROOT指向我们自定义的yourAppName文件夹

此时执行 bin/stop.sh   bin/start.sh就可以启动了,启动完毕即可正常访问,如果需要添加多个应用,则指定多个context即可。

如果我们只想把web应用直接放在webapps下面,而不想在webapps下面建立文件夹再放进去怎么办呢?

实际上是可以的,我们来看

方式三 将web应用解压到webapps下面:

现在的文件夹目录如下

yourdomain/webapps/* (*代表WEB-INF等)

如果此时启动tomcat,tomcat会将webapps下的每一个文件夹当做一个上下文进行加载,导致一个web应用被拆分成N个web容器,此时访问极易出异常,

为了避免这种情况,我们需要修改server.xml

将其中的

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true”> 
修改为 

<Host name="localhost"  appBase=“anotherwebapps"  unpackWARs="true" autoDeploy="true”>

此时再启动就可以了,这种方式其实等同于另外一种情况,就是你的web应用可以自己组织放在任何地方,而server.xml里面依然是

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

这种配置不变,需要变的是Context节点的配置

<Context path="/" docBase="/home/user/app/test.aliyun.com/webapps" debug="0" reloadbale="true" privileged="true"> </Context>

将其中的docBase指向你自定义的web应用目录,就可以实现根据要求自行组织web应用群结构的目的了


War包部署方式:

我们可以直接将war包扔到webapps目录下,此时尚需配置Context节点,将docBase指向war包的名字,不含后缀

 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true”>  <Context path="/" docBase=“yourAppName.war" debug="0" reloadbale="true" privileged="true”>  </Context></Host>

这种配置其实是上面的方式二,只是省了解压这一步骤,tomcat帮你做了。也可以不加Context,只是这样访问的时候url需要加上你的应用名

localhost:port/yourAppName/index.html


0 0
原创粉丝点击