Tomcat自定义部署
首先,需要把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.outstop.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
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的Tomcat自定义部署的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国学精典书籍阅读记录
- 下一篇: yolov3-tiny神经网络FPGA(