CentOS7下搭建Tomcat服務器


  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

  


免責聲明!

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



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