tomcat安裝以及常用配置
一 什麼是tomcat
Tomcat 伺服器是一個免費的開放原始碼的Web 應用伺服器,屬於輕量級應用伺服器,在中小型系統和併發訪問使用者不是很多的場合下被普遍使用,是開發和除錯JSP 程式的首選。
Tomcat是一個JSP/Servlet容器。其作為Servlet容器,有三種工作模式:獨立的Servlet容器、程序內的Servlet容器和程序外的Servlet容器。
二 tomcat 的版本:
tomcat 現有的版本有tomcat 7 ,tomcat 8 tomcat8.5,tomcat 9
我們可以在圖片中看到tomcat8.0版本後續也是不會再進行更新和升級了,我們可以使用tomcat8.5和9.0
三 tomcat的下載
3.1 tomcat9版本下載連結
https://tomcat.apache.org/download-90.cgi
3.2 tomcat8.5版本下載連結
https://tomcat.apache.org/download-80.cgi
我們可以根據我們需要版本和系統進行下載。
四 tomcat的安裝
tomcat的安裝,由於該應用常用在linux伺服器上,我們的安裝教程是基於centos7進行安裝:
4.1 java環境配置
tomcat 9 版本需要java8以上才能支援 cd /tmp && wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm rpm -ivh jdk-8u131-linux-x64.rpm 環境變數: vi + /etc/profile JAVA_HOME=/usr/java/jdk1.8.0_131 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH #載入環境變數 source /etc/profile
4.2 tomcat安裝
# 安裝wget yum install wget -y # 下載tomcat包 cd /tmp &&wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.13/bin/apache-tomcat-9.0.13.tar.gz # 解壓 tar -xzvf apache-tomcat-9.0.13.tar.gz # 移動到指定位置並重命名 mv /tmp/apache-tomcat-9.0.13 /opt/tomcat9 # 啟動 tomcat /opt/tomcat9/bin/startup.sh 或者 /opt/tomcat9/bin/catalina.sh start # # 關閉tomcat /opt/tomcat9/bin/shutdown.sh 或者 /opt/tomcat9/bin/catalina.sh stop 還可以直接kill 程序號,當我們的tomcat是有使用者進行訪問的時候,我們殺死不了這個程序,只能通過強制殺死 kill -9 # 檢視當前的版本 /opt/tomcat9/bin/version.sh # 開放埠 tomcat 預設訪問埠是8080,我們可以在conf目錄的檔案server.xml的69行進行埠更改。 firewall-cmd --add-port=8080/tcp --permanent firewall-cmd --reload 如果是在阿里雲進行配置的話,記得開啟安全組的8080埠.
訪問:
路徑是 ip:8080(tomcat預設是繫結ip 0.0.0.0)
五 tomcat的目錄結構
bin # 指令碼啟動目錄
conf #配置檔案目錄
lib #tomcat執行的依賴包
logs #日誌檔案目錄
temp #臨時檔案目錄
webapps # 用來存放應用程式
--docs # 文件
--examples # 示例
--host-manager # 虛擬主機web管理介面
--manager # 管理介面
--ROOT # 預設訪問的應用程式
work # 部署的Web應用程式的臨時工作目錄,當我們需要清除快取的時候可以將該目錄刪除.然後重啟動tomcat.
六 tomcat的初始化
根據需求來進行初始化
第一更改埠:
編輯配置檔案 server.xml .
大約在69行,將 port = "8080"更改成我們想繫結的埠.
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
配置編碼
為了避免程式上的一些請求和返回的中文亂碼問題.我們需要配置.
編輯配置檔案 server.xml .
大約在69行後,新增 useBodyEncodingForURI="true" URIEncoding="UTF-8"<Connector port="8080" protocol="HTTP/1.1" useBodyEncodingForURI="true" URIEncoding="UTF-8" connectionTimeout="20000" redirectPort="8443" />
配置manager
見tomcat-manager的文章
七 tomcat的啟動
# 啟動 tomcat
/opt/tomcat9/bin/startup.sh
或者
/opt/tomcat9/bin/catalina.sh start
#
# 關閉tomcat
/opt/tomcat9/bin/shutdown.sh
或者
/opt/tomcat9/bin/catalina.sh stop
還可以直接kill 程序號,當我們的tomcat是有使用者進行訪問的時候,我們殺死不了這個程序,只能通過強制殺死 kill -9
# 檢視當前的版本
/opt/tomcat9/bin/version.sh
八 tomcat更改繫結ip
在生產環境我們經常有這樣的需求,將tomcat的繫結ip更改.不讓外部人可以直接訪問.
tomcat預設的繫結是 0.0.0.0 ,也就意味著這樣外網就可以訪問我們的tomcat,
但是我們想要我們的tomcat不讓外網訪問
解決方法:
更改繫結ip,繫結127.0.0.1,這樣就只能本機訪問了
編輯配置檔案 server.xml .
大約在69行,在配置埠的地方,新增 :address="127.0.0.1"<Connector port="8080" protocol="HTTP/1.1" address="127.0.0.1" connectionTimeout="20000" redirectPort="8443" />
更改防火牆規則,不對外開放8080埠.
firewall-cmd --remove-port=8080/tcp --permanent firewall-cmd --reload
九 tomcat隱藏manager介面
通過nginx重定向的隱藏介面
十 jenkins使用外掛自動部署tomcat
使用jenkins來進行釋出war包
- 除了常規的將tomcat暫停後,進行刪除原來的war包,scp傳輸新的war包,啟動tomcat
- 還可以使用外掛 deploy war/ear to a container ,通過tomcat的manager介面來進行 來進行釋出。
deploy war/ear to a container:釋出war包到伺服器
deploy artifacts to maven reepository:釋出到maven伺服器
WAR/EAR files: 填的是生成的wa包的路徑。ugou-admin/target/ugou-admin.war(實際路徑是:/root/.jenkins/jobs/ugou-admin-online/workspace/ugou-admin/target/ugou-admin.war)
Context path: 填的是上傳到tomcat的路徑。即使用localhost/(content path設定的名字)來訪問專案
比如我的專案訪問路徑是 :http://127.0.0.1/ugou-admin/ 那麼這裡我應該填入的就是 /ugou-admin
Container: 選擇我們使用的tomcat版本。
Manager user name /Manager password: 填入我們在$CATALINA_BASE/conf/tomcat-users.xml 配置的使用者名稱和密碼
Tomcat URL : 填入我們的tomcat url 比如我們設定的埠是80 那麼直接填入ip就行了 :http://127.0.0.1/,如果有埠,那麼我們就需要填入對應的埠。
Deploy on failure : 構建失敗是否還發布。勾選表示是,不勾選表示不是,生產環境建議不勾選。