tomcat部署多個專案
阿新 • • 發佈:2021-01-10
tomcat
部署多個web
專案
說明:自己業餘寫了兩個vue專案,希望可以都部署到阿里雲伺服器上。
1、vue打包好的靜態資原始檔。
2、本人使用的是阿里雲伺服器 liunx系統;
3、請確保你已安裝好
tomcat
,傳送門
1、方式一:同一個埠訪問不同專案;
在我的其它文章中有部署單個web專案的操作說明,這裡就不再介紹只有一個專案的部署情況;傳送門
-
cd
到你的tomcat
目錄下; -
把你打包好的vue靜態檔案,上傳至伺服器並移動到你的
webapps
資料夾中;[root@iZbp156pkpio44mis76wmxZ webapps]# ll total 12 drwxr-xr-x 3 root root 4096 Jan 9 22:36 hero drwxr-xr-x 3 root root 4096 Jan 10 16:17 patient # 我的第二個專案 drwxr-xr-x 3 root root 4096 Jan 9 19:57 ROOT [root@iZbp156pkpio44mis76wmxZ webapps]#
-
修改
cong
資料夾下的server.xml
檔案;- 程式碼內容較多,多餘註釋都已刪除;
[root@iZbp156pkpio44mis76wmxZ conf]# cat server.xml <?xml version="1.0" encoding="UTF-8"?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> <Service name="Catalina"> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <!--這個是我的第一個web專案也是我的預設web專案--> <Context path="" docBase="hero" debug="0" reloadable="true" /> <!--我的第二個專案 訪問時要在url後加上test--> <Context path="test" docBase="patient" debug="0" reloadable="true" /> </Host> </Engine> </Service> </Server> [root@iZbp156pkpio44mis76wmxZ conf]#
-
關閉並重啟tomcat;
-
測試訪問;如果返回html頁面就說明你部署成功了。瀏覽器訪問:
http://ip:port/test/
[root@iZbp156pkpio44mis76wmxZ webapps]# curl localhost/test/ <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <link rel="icon" href="favicon.ico"> <title>百草堂</title> <link href="static/js/0.js" rel="prefetch"><link href="static/js/1.js" rel="prefetch"><link href="static/js/2.js" rel="prefetch"><link href="static/js/3.js" rel="prefetch"><link href="static/js/4.js" rel="prefetch"><link href="static/js/5.js" rel="prefetch"><link href="static/js/6.js" rel="prefetch"><link href="static/js/7.js" rel="prefetch"><link href="static/js/8.js" rel="prefetch"><link href="static/js/app.js" rel="preload" as="script"><link href="static/js/chunk-vendors.js" rel="preload" as="script"></head> <body> <noscript> <strong>We're sorry but patient doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> </noscript> <div id="app"></div> <!-- built files will be auto injected --> <script type="text/javascript" src="static/js/chunk-vendors.js"></script><script type="text/javascript" src="static/js/app.js"></script></body> </html> [root@iZbp156pkpio44mis76wmxZ webapps]#
注意:這種只是讓你可以訪問到頁面而已,你可能會遇到介面跨域情況,這個需要和後端同學溝通;
2、方法二:不同埠訪問不同的專案;
說明:大多數時候我們的web專案是在不同的域名或埠下的;也就是一個埠對應一個web專案;
-
cd
到你的tomcat
目錄下; -
複製
webapps
資料夾,貼上到當前資料夾下,示例:[root@iZbp156pkpio44mis76wmxZ tomcat]# ll total 168 drwxr-x--- 2 root root 4096 Jul 6 2020 bin -rw-r----- 1 root root 19539 Mar 14 2019 BUILDING.txt drwx------ 4 root root 4096 Jan 9 21:18 conf -rw-r----- 1 root root 6090 Mar 14 2019 CONTRIBUTING.md drwxr-x--- 2 root root 4096 Jul 6 2020 lib -rw-r----- 1 root root 57092 Mar 14 2019 LICENSE drwxr-x--- 2 root root 20480 Jan 10 00:03 logs -rw-r----- 1 root root 1726 Mar 14 2019 NOTICE -rw-r----- 1 root root 3255 Mar 14 2019 README.md -rw-r----- 1 root root 7142 Mar 14 2019 RELEASE-NOTES -rw-r----- 1 root root 16262 Mar 14 2019 RUNNING.txt drwxr-x--- 2 root root 4096 Jul 6 2020 temp drwxr-x--- 4 root root 4096 Jan 9 19:57 webapps drwxr-xr-x 4 root root 4096 Dec 27 15:09 webapps_patient # 我複製的webapps資料夾並重命名為webapps_patient drwxr-x--- 4 root root 4096 Dec 20 16:39 work [root@iZbp156pkpio44mis76wmxZ tomcat]#
-
把你打包好的vue靜態檔案,上傳至伺服器並移動到你複製好的
webapps_patient
資料夾中; -
修改
cong
資料夾下的server.xml
檔案;- 程式碼內容較多,多餘註釋都已刪除;
[root@iZbp156pkpio44mis76wmxZ conf]# cat server.xml <?xml version="1.0" encoding="UTF-8"?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> <!--我的第一個專案--> <Service name="Catalina"> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <Context path="" docBase="hero" debug="0" reloadable="true" /> </Host> </Engine> </Service> <!--以下為我的第二個專案patient--> <Service name="Catalina_patient"> <Connector port="8088" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8099" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina_patient" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps_patient" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <!--我的第二個專案--> <Context path="" docBase="patient" debug="0" reloadable="true" /> </Host> </Engine> </Service> </Server> [root@iZbp156pkpio44mis76wmxZ conf]#
-
注意;
<!-- 修改name的值為Catalina_patient--> <Service name="Catalina_patient"> <!-- 修改port的值為8088--> <Connector port="8088" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8099" protocol="AJP/1.3" redirectPort="8443" /> <!-- 修改name的值為Catalina_patient--> <Engine name="Catalina_patient" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps_patient" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <!--我的第二個專案 path:影響訪問時的路徑可以為空或“/”;docBase:你的web應用的絕對路徑也可以直接webname--> <Context path="" docBase="patient" debug="0" reloadable="true" /> </Host> </Engine> </Service>
-
配置安全組開放8088埠;
-
單獨開放伺服器的8088埠;傳送門
-
關閉並重啟tomcat;
-
測試訪問,如果返回html頁面就說明你部署成功了;瀏覽器地址:
http://ip:8088
[root@iZbp156pkpio44mis76wmxZ bin]# curl localhost:8088 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <link rel="icon" href="favicon.ico"> <title>百草堂</title> <link href="static/js/0.js" rel="prefetch"><link href="static/js/1.js" rel="prefetch"><link href="static/js/2.js" rel="prefetch"><link href="static/js/3.js" rel="prefetch"><link href="static/js/4.js" rel="prefetch"><link href="static/js/5.js" rel="prefetch"><link href="static/js/6.js" rel="prefetch"><link href="static/js/7.js" rel="prefetch"><link href="static/js/8.js" rel="prefetch"><link href="static/js/app.js" rel="preload" as="script"><link href="static/js/chunk-vendors.js" rel="preload" as="script"></head> <body> <noscript> <strong>We're sorry but patient doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> </noscript> <div id="app"></div> <!-- built files will be auto injected --> <script type="text/javascript" src="static/js/chunk-vendors.js"></script><script type="text/javascript" src="static/js/app.js"></script></body> </html> [root@iZbp156pkpio44mis76wmxZ bin]#