tomcat安裝以及常用配置


一 什么是tomcat

Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和並發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。

Tomcat是一個JSP/Servlet容器。其作為Servlet容器,有三種工作模式:獨立的Servlet容器、進程內的Servlet容器和進程外的Servlet容器。

二 tomcat 的版本:

tomcat 現有的版本有tomcat 7 ,tomcat 8 tomcat8.5,tomcat 9
image
我們可以在圖片中看到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)
image

五 tomcat的目錄結構

bin  # 腳本啟動目錄
conf #配置文件目錄
lib  #tomcat運行的依賴包
logs #日志文件目錄
temp #臨時文件目錄
webapps  # 用來存放應用程序
    --docs  # 文檔
    --examples # 示例
    --host-manager # 虛擬主機web管理界面
    --manager # 管理界面
    --ROOT # 默認訪問的應用程序
work # 部署的Web應用程序的臨時工作目錄,當我們需要清除緩存的時候可以將該目錄刪除.然后重啟動tomcat.

六 tomcat的初始化

根據需求來進行初始化

  1. 第一更改端口:

    編輯配置文件 server.xml .
    大約在69行,將 port = "8080"更改成我們想綁定的端口.

    <Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
    
  2. 配置編碼

    為了避免程序上的一些請求和返回的中文亂碼問題.我們需要配置.
    編輯配置文件 server.xml .
    大約在69行后,添加 useBodyEncodingForURI="true" URIEncoding="UTF-8"

<Connector port="8080" protocol="HTTP/1.1"
               useBodyEncodingForURI="true" URIEncoding="UTF-8"
               connectionTimeout="20000"
               redirectPort="8443" />
  1. 配置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不讓外網訪問

解決方法:

  1. 更改綁定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" />
    
  2. 更改防火牆規則,不對外開放8080端口.

    firewall-cmd  --remove-port=8080/tcp --permanent
    firewall-cmd  --reload
    

九 tomcat隱藏manager界面

通過nginx重定向的隱藏界面

十 jenkins使用插件自動部署tomcat

使用jenkins來進行發布war包

  1. 除了常規的將tomcat暫停后,進行刪除原來的war包,scp傳輸新的war包,啟動tomcat
  2. 還可以使用插件 deploy war/ear to a container ,通過tomcat的manager界面來進行 來進行發布。

deploy war/ear to a container:發布war包到服務器

deploy artifacts to maven reepository:發布到maven服務器

image

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 : ** 構建失敗是否還發布。勾選表示是,不勾選表示不是,生產環境建議不勾選。

十一 tomcat 部署項目的三種方法(補充)

11.1 方法一 把war包添加到webapps

直接將 war 包放在 ./webapps 下

tomcat 會自動將war解壓

image

11.2 方法二 更改配置文件 server.xml(官方不建議使用該方法)

我們可以在 ./conf/目錄下找到server.xml文件
我們需要在 里面添加上我們的項目的訪問路徑和存放路徑配置

<Context  path="/djx" docBase="/tmp/djx/" reloadable="true" />
path 指的是 訪問路徑  
docBase 指的是項目存放路徑
reloadable 設置為true表示Catalina將監視 /WEB-INF/classes/和/WEB-INF/lib的文件,一旦發生更改將自動重新加載Web應用程序。它可以在在開發的時候使用,但需要消耗更多資源,官方文檔寫到不建議在生產環境上使用,所以它的默認值是false.

8.0版本文檔
Set to true if you want Catalina to monitor classes in /WEB-INF/classes/ and /WEB-INF/lib for changes, and automatically reload the web application if a change is detected. This feature is very useful during application development, but it requires significant runtime overhead and is not recommended for use on deployed production applications. That's why the default setting for this attribute is false. You can use the Manager web application, however, to trigger reloads of deployed applications on demand.

配置示例:

配置示例

11.3 方法三 使用xml配置文件(建議方法)

在 ./conf/Catalina/localhost/ 下添加xml配置文件.

示例: 我要讓/tmp/www/ 里的網站部署在tomcat上 。

vim  djx.xml    # 文件的名稱也就是我們后面訪問時要在ip端口加的后綴

djx.xml 內容,docBase 后面填入項目的路徑

<Context  docBase="/tmp/www/" />

然后我們重啟tomcat,然后在瀏覽器 192.168.1.198/djx/訪問的文件名 即可訪問到我們的項目文件了
image

11.4 注意點

注意點一

方法三中如果我想直接通過ip+端口就能直接訪問到我部署的項目,那么我們這個xml 文件的名稱就應該是 ROOT.xml(要全都大寫哦)

第三種的文件命名示例:
image

注意點二

對於參數reloadable="true" ,在方法二特別說明了,大家注意。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM