天天看點

在阿裡雲ECS上部署Apache和Tomcat并整合一、基本環境安裝準備二、安裝module_jk并進行配置三、在Tomcat中設定worker四、功能驗證

首先需要購買阿裡雲ECS伺服器。我購買的是低配置,OS為Ubuntu18.04。

本文中所有的指令操作均是以Putty連接配接到ECS伺服器後進行的操作。

一、基本環境安裝準備

要運作Tomcat,首先要确認有沒有安裝Java。運作指令:

java --version           

如果輸出下面的字樣,證明已經安裝了Java。

openjdk 11.0.3 2019-04-16           

上面證明我安裝的是OpenJDK,如果是Oracle JDK輸出的可能是其它字樣。

如果沒有安裝的話,可以使用apt-get install指令安裝openjdk。

apt-get install default-jdk           

安裝Tomcat和apache2。

安裝apache2使用指令:

apt-get install apache2           

Tomcat是從apache官網下載下傳的8.5.1,直接解壓到/usr/local目錄下。

啟動Apache和Tomcat,分别通路如下:

在阿裡雲ECS上部署Apache和Tomcat并整合一、基本環境安裝準備二、安裝module_jk并進行配置三、在Tomcat中設定worker四、功能驗證
在阿裡雲ECS上部署Apache和Tomcat并整合一、基本環境安裝準備二、安裝module_jk并進行配置三、在Tomcat中設定worker四、功能驗證

下面重點介紹Tomcat和Apache的整合。

Tomcat雖然也提供了WebServer的功能,但是一般隻用作調試使用,其主要功能還是處理Servlet,作為Servlet容器使用。對于Web的處理還是Apache的Httpd這專業的WebServer更優秀。

要整合,就需要将所有的HTTP請求都經過Apache的篩選,把符合一定規則的請求轉發給Tomcat處理。這其中需要的子產品是module_jk,專門負責轉發工作,這個子產品是以動态庫形式存在,需要的時候才進行加載。而Tomcat相對于Apache叫worker,一般通過8009的TCP端口使用AJP協定和Tomcat通信。

二、安裝module_jk并進行配置

安裝指令如下:

apt-get install libapache2-mod-jk           

安裝後在/etc/apache2/mods-enabled目錄下會多出一個jk.load檔案,檔案内容就是标準的apache加載子產品的LoadModule指令。重新開機Apache2會自動加載這個子產品。

在阿裡雲ECS上部署Apache和Tomcat并整合一、基本環境安裝準備二、安裝module_jk并進行配置三、在Tomcat中設定worker四、功能驗證

在同一個目錄有一個jk.conf檔案,它是對mod_jk的相關配置,如下圖:

在阿裡雲ECS上部署Apache和Tomcat并整合一、基本環境安裝準備二、安裝module_jk并進行配置三、在Tomcat中設定worker四、功能驗證

從上面的配置檔案我們可以确認,jk_worker的配置檔案/etc/libapache2-mod-jk/workers.properties,要将Tomcat作為一個Worker就得修改這個檔案。編輯這個檔案,會看到一個worker.list,預設是ajp13_worker,如果你不喜歡可以将此名字進行修改,如果不想修改一定要記住,後面的配置會使用。如果修改就得将檔案中的所有地方都修改為統一的名字如myworker什麼的。如果在替換,在vi的指令模式輸入如下的指令即可:

:%s#ajp13_worker#myworker#g           

然後回車即完成全文替換。

另外還要修改Tomcat和JDK目錄,如下:

在阿裡雲ECS上部署Apache和Tomcat并整合一、基本環境安裝準備二、安裝module_jk并進行配置三、在Tomcat中設定worker四、功能驗證

然後設定apache2的轉發規則,

vi /etc/apache2/sites-available/000-default.conf           

在VirtualHost節點的未尾添加轉發規則(一條或多條),如下圖:

在阿裡雲ECS上部署Apache和Tomcat并整合一、基本環境安裝準備二、安裝module_jk并進行配置三、在Tomcat中設定worker四、功能驗證

這條規則的意思是把所有的/examples/和/MyWebApp/的請求轉交給tomcat處理。

整個配置中涉及和可能修改的檔案清單如下:

  • /etc/apache2/mods-enabled/jk.load
  • /etc/apache2/mods-enabled/jk.conf
  • /etc/libapache2-mod-jk/workers.properties
  • /etc/apache2/sites-available/000-default.conf

    其中jk.load/jk.conf是mod_jk的加載和配置,可能會修改。workers.properties是worker設定,必須修改。000-default.conf轉發規則,必須修改。

三、在Tomcat中設定worker

修改Engine節點。添加worker名稱,如下圖:

在阿裡雲ECS上部署Apache和Tomcat并整合一、基本環境安裝準備二、安裝module_jk并進行配置三、在Tomcat中設定worker四、功能驗證

并确定8009端口已監聽協定為AJP1.3。

四、功能驗證

進行上述配置後,需要重新開機tomcat和apache2。

systemctl stop apache2
systemctl start apache2           

進入tomcat的主目錄,然後進入bin目錄。執行

./shutdown.sh
./startup.sh &           

打開浏覽器,輸入

http://xxx.xxx.xxx.xxx/examples/
在阿裡雲ECS上部署Apache和Tomcat并整合一、基本環境安裝準備二、安裝module_jk并進行配置三、在Tomcat中設定worker四、功能驗證

我再也不為輸入:8080就可以通路tomcat了。如果我在tomcat上布置了其它應用,通過apache2的轉發規則,直接就可以通路了,如我的MyWebApp。如下圖:

在阿裡雲ECS上部署Apache和Tomcat并整合一、基本環境安裝準備二、安裝module_jk并進行配置三、在Tomcat中設定worker四、功能驗證