您好,登錄后才能下訂單哦!
這篇文章主要講解了“快速搭建平臺和環境部署Tomcat的方法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“快速搭建平臺和環境部署Tomcat的方法”吧!
CATALINA_HOME指的是Tomcat的安裝目錄
bin:\\Tomcat一些腳本存放目錄,比如啟動腳本startup.bat/startup.sh等
conf:\\Tomcat配置文件所在目錄,最主要的就是server.xml與web.xml
lib:\\主要存放Tomcat依賴包
logs:\\Tomcat日志所在目錄。以為catalina、host-manager等開頭日志
temp:\\存放Tomcat運行時的臨時文件,通常放一些緩存文件,一般不要刪除
webapps:\\應用部署所在目錄,就是在這里存放我們需要部署的文件目錄、WAR包
work:\\存放由JSP文件生成的Servlet
RUNNING.txt:\\運行說明,必需的一些環境信息
NOTICE:\\通知信息,軟件的版權信息等
RELEASE-NOTES:\\發布說明,比如版本升級的功能說明
LICENSE:\\版權許可證,軟件版權信息
CATALINA_BASE指的是Tomcat的實例所在目錄,Tomcat的實例由除了bin、lib外的目錄組成
兩者的對比圖如下一目了然,配置多實例,也只需要Copy相應的目錄組成新的Tomcat實例即可。
Tomcat的配置需要分為:JVM配置、服務器配置、Web應用配置、Tomcat管理配置四個方面(其中JVM的配置一般在catalina.sh/catalina.bat中配置,這里不做介紹),這里只做簡單的介紹,不會具體介紹Tomcat配置
1)服務器配置
服務器配置主要集中于$CATALINA_HOME/conf下的catalina.policy、catalina.properties、context.xml、server.xml、tomcat-users.xml、web.xml文件。
2)Web應用配置
web.xml是Web應用的部署描述文件,它支持的元素及屬性來自于Servlet規范定義。在Tomcat中,Web應用的部署描述信息包括$CATALINA_BASE/conf/web.xml中的默認配置。Tomcat的默認配置比Web應用定制配置負責很多,如果是完全基于JSP的Web應用不需要添加任何定制配置。主要包括ServletContext的初始化參數、會話配置、Filter定義與映射等
3)Tomcat管理配置
主要是針對host-manager 與manager兩個功能進行配置,在Tomcat中我們可以針對虛擬主機進行配置,也可以對我們的Web應用進行管理。
Wwbapps目錄下包括docs、ROOT、manager、host-manager、examples。webapps不一定是Tomcat部署web應用唯一的地方,可以在任何一處,但只需要做好映射即可(context.xml描述文件或者Host的appBase屬性可以做到)
事實上,全部都可以刪除。為什么呢?這是因為
1)ROOT:\\Tomcat本身默認的訪問http://{ip}:{port},也就是訪問http://127.0.0.1:8080標志性的Tomcat首頁所在之處
2)manager:\\訪問http://{ip}:{port}/manager/html,可以管理部署應用(當然需要配置tomcat-users.xml文件)。一般部署Web應用往往是不需要的
3)host-manager:\\訪問http://{ip}:{port}/host-manager/html,可以管理配置Host虛擬主機。一般簡單web應用部署也不會用到
4)examples:\\Servlet、JSP、WebSocket示例,展示在Tomcat下如何使用等,訪問http://{ip}:{port}/examples/index.html即可進入。也是不需要的,可以刪除
5)docs:\\Tomcat HTML文檔中心,不影響應用部署,可以刪除
1)Server Port:該端口用于監聽關閉tomcat的shutdown命令,默認為8005
<Server port="8006"> 2)Connector Port:該端口用于監聽HTTP的請求,默認為8080
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
3)AJP Port:該端口用于監聽AJP( Apache JServ Protocol )協議上的請求,通常用于整合Apache Server等其他HTTP服務器,默認為8009。實際上可以不用管,因為AJP基本用不到,特別是Ngxin與Tomcat集成時(Nginx沒有響應的支持AJP模塊,只有第三方模塊支持AJP協議)
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
4)Redirect Port:重定向端口,出現在Connector配置中,如果該Connector僅支持非SSL的普通http請求,那么該端口會把 https 的請求轉發到這個Redirect Port指定的端口,默認為8443;
簡單的應用部署為避免端口沖突,實際上只需要更改SHUTDOWN監聽端口與Connector鏈接器監聽端口即可
1) Context描述文件部署
Tomcat支持通過一個獨立的Context描述文件配置并啟動Web應用,該文件的存儲路徑由Hot中xmlBase屬性指定,若不指定,則默認CATALINA_BASE/conf/<Engine名稱>/<Host名稱>,對于Tomcat默認的就是CATALINA_BASE/conf/Catalina/localhost;其實也就是conf/context.xml文件:Tomcat啟動時即會自動部署該Web應用。
2) Web部署
即以目錄的形式發布部署Web應用,復制到Host指定appBase目錄下即可完成部署。
3) WAR包部署
xxx.war包解壓成目錄形式。
1.環境描述
準備兩臺虛擬機,一臺作為nginx服務器+mysql服務器,IP為:192.168.109.131;另外一臺作為Tomcat服務器配置多實例,IP為:192.168.109.132。當客戶端發來請求,首先由nginx處理,如果為靜態內容直接由nginx響應,將結果直接給客戶端;如果為動態內容,則由nginx反向代理至后端的Tomcat服務器。
2.安裝Nginx
[root@centos7~]#yum -y install gcc pcre pcre-devel openssl openssl-devel make automake autoconf wget vim
[root@centos7~]#wget http://nginx.org/download/nginx-1.17.4.tar.gz
[root@centos7~]#useradd -s /sbin/nologin nginx
[root@centos7~]#cd nginx-1.17.4
[root@centos7~]#cd nginx-1.17.4
[root@centos7 nginx-1.17.4]##./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module
[root@centos7 nginx-1.17.4]#make && make install
[root@centos7 nginx-1.17.4]#cat /usr/local/nginx/sbin/nginx
[root@centos7 nginx-1.17.4]# ln -s /usr/local/nginx/sbin/nginx /sbin
[root@centos7 nginx-1.17.4]# nginx
[root@centos7 nginx-1.17.4]# nginx -s reload
Nginx 安裝完畢,稍后我們再配置,接下來安裝mariadb
3.安裝mariadb
[root@centos7~]#yum -y install mariadb mariadb-server mariadb-devel
[root@centos7~]#systemctl restart mariadb
[root@centos7~]#systemctl enable mariadb
Mysql安裝完畢,我們切換到另一臺最小化方式安裝的虛擬機上安裝Tomcat
4.安裝Tomcat
[root@centos7~]#yum -y install wget bash-completion vim
[root@centos7~]#wget wget --no-check-certificate https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz
[root@centos7~]#yum -y install java //安裝JDK
[root@centos7~]#java -version //查看JDK版本
[root@centos7~]#yum install -y tomcat-webapps tomcat-admin-webapps //安裝tomcat管理包
[root@centos7~]#mkdir /usr/local/tomcat /usr/local/tomcat/tomcat_1 /usr/local/tomcat/tomcat_2
[root@centos7~]#tar -xvf apache-tomcat-9.0.27.tar.gz tomcat_bin -C /usr/local/tomcat/tomcat
[root@slave tomcat]#mv apache-tomcat-9.0.27 tomcat_bin
[root@slave tomcat_bin]# cp conf/ webapps/ temp/ logs/ work/ -r /usr/local/tomcat/tomcat_1
[root@slave tomcat_bin]# cp conf/ webapps/ temp/ logs/ work/ -r /usr/local/tomcat/tomcat_2
[root@slave tomcat_bin]# vim /usr/local/tomcat/tomcat_1/conf/server.xml //主要修改tomcat_1以下兩個參數
<Server port="8010" shutdown="SHUTDOWN"> //修改shutdown命令監聽端口
<Connector port="8081" protocol="HTTP/1.1" //修改Connector鏈接器監聽端口
connectionTimeout="20000"
redirectPort="8443" />
[root@slave tomcat_bin]# vim /usr/local/tomcat/tomcat_1/conf/server.xml //主要修改tomcat_2以下兩個參數
<Server port="8020" shutdown="SHUTDOWN"> //修改shutdown命令監聽端口
<Connector port="8082" protocol="HTTP/1.1" //修改Connector鏈接器監聽端口
connectionTimeout="20000"
redirectPort="8443" />
[root@centos7~]#bash /usr/local/tomcat/tomcat_bin/bin/startup.sh // 啟動實例0(默認配置)
Using CATALINA_BASE: /usr/local/tomcat/tomcat_bin
Using CATALINA_HOME: /usr/local/tomcat/tomcat_bin
Using CATALINA_TMPDIR: /usr/local/tomcat/tomcat_bin/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/tomcat_bin/bin/bootstrap.jar:/usr/local/tomcat/tomcat_bin/bin/tomcat-juli.jar
[root@centos7~]#bash /usr/local/tomcat/tomcat_1/bin/startup.sh //啟動實例1
Using CATALINA_BASE: /usr/local/tomcat/tomcat_1
Using CATALINA_HOME: /usr/local/tomcat/tomcat_1
Using CATALINA_TMPDIR: /usr/local/tomcat/tomcat_1/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/tomcat_1/bin/bootstrap.jar:/usr/local/tomcat/tomcat_1/bin/tomcat-juli.jar
Tomcat started.
[root@centos7~]#bash /usr/local/tomcat/tomcat_2/bin/startup.sh //啟動實例2
Using CATALINA_BASE: /usr/local/tomcat/tomcat_2
Using CATALINA_HOME: /usr/local/tomcat/tomcat_2
Using CATALINA_TMPDIR: /usr/local/tomcat/tomcat_2/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/tomcat_2/bin/bootstrap.jar:/usr/local/tomcat/tomcat_2/bin/tomcat-juli.jar
Tomcat started.
[root@centos7~]# netstat -nptl // 檢查端口是否已經起來
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1482/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2045/master
tcp6 0 0 :::8009 :::* LISTEN 2956/java
tcp6 0 0 127.0.0.1:8010 :::* LISTEN 3037/java
tcp6 0 0 :::8080 :::* LISTEN 2956/java
tcp6 0 0 :::8081 :::* LISTEN 3037/java
tcp6 0 0 :::8082 :::* LISTEN 3097/java
tcp6 0 0 127.0.0.1:8020 :::* LISTEN 3097/java
tcp6 0 0 :::22 :::* LISTEN 1482/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2045/master
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2956/java
為了便于區別驗證實例是否都正常工作,修改主頁文件來驗證
[root@centos7~]#/usr/local/tomcat/tomcat_bin/webapps/ROOT/index.jsp
<!DOCTYPE HTML><html lang="en"><head>
<meta charset="UTF-8">
<title>Apache Tomcat Examples</title>
</head>
<body>
<h2>This is Tomcat 0</H1>
</body></html>
[root@centos7~]#/usr/local/tomcat/tomcat_1/webapps/ROOT/index.jsp
<!DOCTYPE HTML><html lang="en"><head>
<meta charset="UTF-8">
<title>Apache Tomcat Examples</title>
</head>
<body>
<h2>This is Tomcat 1</H1>
</body></html>
[root@centos7~]#/usr/local/tomcat/tomcat_2/webapps/ROOT/index.jsp
<!DOCTYPE HTML><html lang="en"><head>
<meta charset="UTF-8">
<title>Apache Tomcat Examples</title>
</head>
<body>
<h2>This is Tomcat 2</H1>
</body></html>
最后,驗證以下Tomcat運行是否正常。
*****************************************tomcat多實例至此安裝完成***************************
5.配置nginx反向代理動態頁面轉發到tomcat,靜態頁面直接處理
[root@centos7~]#vim /usr/local/nginx/conf/nginx.conf //只保留配置部分,監聽域名www.cc.com
user nginx nginx;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream web { //添加upstream模塊
server 192.168.109.132:8080 ; //tomcat實例0
server 192.168.109.132:8081 ; //tomcat實例1
server 192.168.109.132:8082 ; //tomcat實例2
}
server {
listen 80;
server_name www.cc.com;
location ~* \.(do|jsp)$ { //定義訪問類型轉發到后端web
proxy_pass http://web;
}
location ~* tomcat\.(png|css)$ { //定義訪問類型轉發到后端web
proxy_pass http://web;
}
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
[root@centos7~]#nginx -t //測試一下nginx配置文件
[root@centos7~]#nginx -s reload //平滑啟動nginx
最后本地綁定hosts文件測試一下配置結果:
訪問靜態主頁:
訪問動態頁面:
實際生產環境中可能會遇到nginx多實例做負載均衡(ELB)和tomcat多實例為主的情況,根據服務器容量也有單機多實例和集群模式,所以根據不同的生產環境會有不同的配置方式,滿足業務需求才是運維的第一生產力
tomcat的啟停可以編輯一下Shell/Python腳本來幫助管理實例,日志的管理和參數調優也是需要繼續學習的地方
感謝各位的閱讀,以上就是“快速搭建平臺和環境部署Tomcat的方法”的內容了,經過本文的學習后,相信大家對快速搭建平臺和環境部署Tomcat的方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。