Tomcat 服務器是一個免費的開放源代碼的 Web 應用服務器,屬於輕量級應用服務器,在中小型系統和並發訪問用戶不是很多的場合下被普遍使用,是開發和調試 JSP 程序的首選。Tomcat 和 IIS 等 Web 服務器一樣,具有處理 HTML 頁面的功能。不過,Tomcat 處理靜態 HTML 的能力不如 Apache 服務器。
因為Tomcat 技術先進、性能穩定,而且免費,因而深受 Java 愛好者的喜愛並得到了部分軟件開發商的認可,成為目前比較流行的 Web 應用服務器。支持JSP網站的收費版web服務器:oracle 的 weblogic、IBM 的 websphere。
(1).什么是中間件
中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源。中間件位於客戶機/服務器的操作系統之上,管理計算機資源和網絡通訊。是連接兩個獨立應用程序或獨立系統的軟件。相連接的系統,即使它們具有不同的接口,但通過中間件相互之間仍能交換信息。執行中間件的一個關鍵途徑是信息傳遞。通過中間件,應用程序可以工作於多平台或OS環境。
中間件是一類連接軟件組件和應用的計算機軟件,它包括一組服務。以便於運行在一台或多台機器上的多個軟件通過網絡進行交互。該技術所提供的互操作性,推動了一致分布式體系架構的演進,該架構通常用於支持並簡化那些復雜的分布式應用程序,它包括web服務器、事務監控器和消息隊列軟件。
中間件是基礎軟件的一大類,屬於可復用軟件的范疇。顧名思義,中間件處於操作系統軟件與用戶的應用軟件的中間。
中間件在操作系統、網絡和數據庫之上,應用軟件的下層,總的作用是為處於自己上層的應用軟件提供運行與開發的環境,幫助用戶靈活、高效地開發和集成復雜的應用軟件。在眾多關於中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源,中間件位於客戶機服務器的操作系統之上,管理計算資源和網絡通信。
(2).下載安裝包
JDK程序包,下載地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html。具體選擇什么版本看自己的需要,我這里使用的是jdk-8u191-linux-x64.tar.gz。
Tomact程序包,下載地址:http://tomcat.apache.org/。選擇版本在左側,我這里使用的是Core(核心)里的apache-tomcat-8.5.35.tar.gz。
然后將下載好的程序包上傳。這兩個都是二進制包,解壓后可以直接使用。
(3).JDK的安裝和配置
1)首先查看系統中是否存在openjdk,如果存在將其卸載。
[root@youxi1 ~]# java -version -bash: java: 未找到命令 //我的系統沒有,如果顯示的是openjdk version ...,那就是openjdk [root@youxi1 ~]# yum -y remove java-* //可以使用這個命令卸載自帶的openjdk
2)將文件解壓到指定地址
[root@youxi1 ~]# tar zxf jdk-8u191-linux-x64.tar.gz -C /usr/local/
3)配置環境變量,刷新
[root@youxi1 ~]# vim /etc/profile.d/jdk8.sh export JAVA_HOME=/usr/local/jdk1.8.0_191 export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jar/tools.jar:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH [root@youxi1 ~]# . /etc/profile.d/jdk8.sh
也可以寫入/etc/profile文件。
4)測試
[root@youxi1 ~]# java -version java version "1.8.0_191" Java(TM) SE Runtime Environment (build 1.8.0_191-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
(4).Tomcat的安裝和配置
1)將文件解壓到指定地址
[root@youxi1 ~]# tar zxf apache-tomcat-8.5.35.tar.gz -C /usr/local/
這里我嫌解壓后的文件夾名稱太長了,修改文件夾名稱
[root@youxi1 ~]# mv /usr/local/apache-tomcat-8.5.35 /usr/local/tomcat8.5
順便說明一下解壓后目錄下存在的各個文件夾的作用:
[root@youxi1 ~]# ll /usr/local/tomcat8.5/ | grep drw drwxr-x--- 2 root root 4096 6月 29 17:09 bin //啟動和關閉的腳本目錄,存放腳本 drwx------ 2 root root 238 11月 4 2018 conf //配置文件目錄,存放配置文件 drwxr-x--- 2 root root 4096 6月 29 17:09 lib //內庫,依賴包目錄 drwxr-x--- 2 root root 6 11月 4 2018 logs //日志目錄,存放日志 drwxr-x--- 2 root root 30 6月 29 17:09 temp //臨時目錄,存放臨時文件 drwxr-x--- 7 root root 81 11月 4 2018 webapps //Web目錄 drwxr-x--- 2 root root 6 11月 4 2018 work //工作目錄,存放編譯產生的class和servlet文件
據說,bin目錄下的shutdown.sh並不好用,一般會使用kill命令直接殺死tomcat。
2)創建一個啟動腳本,並加入開機自啟
[root@youxi1 ~]# vim /etc/init.d/tomcat #!/bin/bash # # tomcat startup script for the Tomcat server # # chkconfig: 345 80 20 # description: start the tomcat deamon # # Source function library JAVA_HOME=/usr/local/jdk1.8.0_191 //這里指定JAVA的地址 export JAVA_HOME CATALANA_HOME=/usr/local/tomcat8.5 //這里指定Tomcat的地址 export CATALANA_HOME case "$1" in start) echo "Starting Tomcat..." $CATALANA_HOME/bin/startup.sh ;; stop) echo "Stopping Tomcat..." $CATALANA_HOME/bin/shutdown.sh ;; restart) echo "Stopping Tomcat..." $CATALANA_HOME/bin/shutdown.sh sleep 2 echo echo "Starting Tomcat..." $CATALANA_HOME/bin/startup.sh ;; *) echo "Usage: $prog {start|stop|restart}" ;; esac exit 0 [root@youxi1 ~]# chmod +x /etc/init.d/tomcat //添加執行權限 [root@youxi1 ~]# chkconfig --add tomcat //添加到chkconfig管理 [root@youxi1 ~]# chkconfig --list tomcat tomcat 0:關 1:關 2:關 3:開 4:開 5:開 6:關 [root@youxi1 ~]# chkconfig --level 2345 tomcat on //如果上面沒有開啟,可以使用這條命令,當然只需要345就行了 [root@youxi1 ~]# chkconfig --list tomcat //這是做的示范 tomcat 0:關 1:關 2:開 3:開 4:開 5:開 6:關
3)啟動tomcat
[root@youxi1 ~]# systemctl start tomcat [root@youxi1 ~]# systemctl status tomcat ● tomcat.service - SYSV: start the tomcat deamon Loaded: loaded (/etc/rc.d/init.d/tomcat; bad; vendor preset: disabled) Active: active (running) since 六 2019-06-29 17:47:23 CST; 9s ago Docs: man:systemd-sysv-generator(8) Process: 1744 ExecStart=/etc/rc.d/init.d/tomcat start (code=exited, status=0/SUCCESS) CGroup: /system.slice/tomcat.service └─1754 /usr/local/jdk1.8.0_191/bin/java -Djava.util.logging.config... 6月 29 17:47:23 youxi1 systemd[1]: Starting SYSV: start the tomcat deamon... 6月 29 17:47:23 youxi1 tomcat[1744]: Starting Tomcat... 6月 29 17:47:23 youxi1 tomcat[1744]: Using CATALINA_BASE: /usr/local/tom....5 6月 29 17:47:23 youxi1 tomcat[1744]: Using CATALINA_HOME: /usr/local/tom....5 6月 29 17:47:23 youxi1 tomcat[1744]: Using CATALINA_TMPDIR: /usr/local/tom...mp 6月 29 17:47:23 youxi1 tomcat[1744]: Using JRE_HOME: /usr/local/jdk...91 6月 29 17:47:23 youxi1 tomcat[1744]: Using CLASSPATH: /usr/local/tom...ar 6月 29 17:47:23 youxi1 tomcat[1744]: Tomcat started. 6月 29 17:47:23 youxi1 systemd[1]: Started SYSV: start the tomcat deamon. Hint: Some lines were ellipsized, use -l to show in full.
4)如果存在防火牆記得添加端口號
[root@youxi1 ~]# firewall-cmd --permanent --zone=public --add-port=8080/tcp success [root@youxi1 ~]# firewall-cmd --reload success [root@youxi1 ~]# firewall-cmd --permanent --zone=public --list-ports 8080/tcp
5)測試
在Windows上查看
(5).擴展:如果一台服務器上存在多個Tomcat
此時,創建啟動腳本容易寫錯,導致誤殺。所以一般都會到需要執行的tomcat目錄下,再執行腳本。當然寫啟動腳本也可以,但需要注意啟動腳本的名稱要方便識別是用來做什么的,然后腳本內部的地址需要仔細檢測。
如果不寫啟動腳本,這時候想要Tomcat開機自啟,請將啟動命令(當然也可以將啟動命令做成一個腳本文件)寫入/etc/rc.d/rc.local文件,並授予執行權限。如下:
[root@youxi1 ~]# vim /etc/rc.d/rc.local xport JAVA_HOME=/usr/local/jdk1.8.0_191 //必須有這一條,否則無法執行Tomcat的startup.sh /usr/local/tomcat8.5/bin/startup.sh [root@youxi1 ~]# chmod +x !$ //授權 chmod +x /etc/rc.d/rc.local
重啟服務器來驗證是否開機自啟
[root@youxi1 ~]# ss -tlunp | grep 8080 tcp LISTEN 0 100 :::8080 :::* users:(("java",pid=1092,fd=49))
(6).如何查看tomcat的版本
有兩種方法:一種是直接提供的version.sh腳本
[root@youxi1 ~]# /usr/local/tomcat8.5/bin/version.sh Using CATALINA_BASE: /usr/local/tomcat8.5 Using CATALINA_HOME: /usr/local/tomcat8.5 Using CATALINA_TMPDIR: /usr/local/tomcat8.5/temp Using JRE_HOME: /usr/local/jdk1.8.0_191 Using CLASSPATH: /usr/local/tomcat8.5/bin/bootstrap.jar:/usr/local/tomcat8.5/bin/tomcat-juli.jar Server version: Apache Tomcat/8.5.35 Server built: Nov 3 2018 17:39:20 UTC Server number: 8.5.35.0 OS Name: Linux OS Version: 3.10.0-862.el7.x86_64 Architecture: amd64 JVM Version: 1.8.0_191-b12 JVM Vendor: Oracle Corporation
另一種是通過提供的catalina.sh腳本來查看
[root@youxi1 ~]# /usr/local/tomcat8.5/bin/catalina.sh version Using CATALINA_BASE: /usr/local/tomcat8.5 Using CATALINA_HOME: /usr/local/tomcat8.5 Using CATALINA_TMPDIR: /usr/local/tomcat8.5/temp Using JRE_HOME: /usr/local/jdk1.8.0_191 Using CLASSPATH: /usr/local/tomcat8.5/bin/bootstrap.jar:/usr/local/tomcat8.5/bin/tomcat-juli.jar Server version: Apache Tomcat/8.5.35 Server built: Nov 3 2018 17:39:20 UTC Server number: 8.5.35.0 OS Name: Linux OS Version: 3.10.0-862.el7.x86_64 Architecture: amd64 JVM Version: 1.8.0_191-b12 JVM Vendor: Oracle Corporation