1. 程式人生 > >linux下apache+mod_jk.so+tomcat整合(基礎版)

linux下apache+mod_jk.so+tomcat整合(基礎版)

本文所實現的目的是實現動靜分離的負載均衡

安裝前的準備

CentOS 7 最小化安裝

yum 安裝 gcc  gcc-c++ perl

apache-tomcat-9.0.0.M4.tar.gz           //tomcat二進位制壓縮包(不是原始碼包)

apr-1.5.2.tar.gz                        //apr原始碼包

apr-util-1.5.4.tar.gz                                //apr-util原始碼包

httpd-2.4.20.tar.gz                                 //Apache原始碼包

pcre-8.38.tar.gz                                     //pcre原始碼包

jdk-8u91-linux-x64.gz                          //JDK

tomcat-connectors-1.2.41-src.tar.gz  //apache-tomcat聯結器原始碼包

一、安裝Apache的依賴包apr

1.解壓縮apr原始碼包

# tar -zxvf apr-1.5.2.tar.gz

2.把解壓得到的包移動到/usr/local/ 中,並進入其中

# mv apr-1.5.2 /usr/local/

# cd /usr/local/apr-1.5.2

3.執行安裝過程

# ./configure

# make && make install

4.安裝完成,清理殘餘

# cd /usr/local

# rm -rf /usr/local/apr-1.5.2/

二、安裝Apache的依賴包apr-util

1.解壓縮apr-util原始碼包

# tar -zxvf apr-util-1.5.4.tar.gz

2.把解壓得到的包移動到/usr/local/ 中,並進入其中

# mv apr-util-1.5.4 /usr/local/

# cd /usr/local/apr-util.1.5.4

3.執行安裝過程

# ./configure –with-apr=/usr/local/apr

# make && make install

4.安裝完成,清理殘餘

# cd /usr/local

# rm -rf /usr/local/apr-util-1.5.4/

三、安裝PCRE

1.解壓縮PCRE原始碼包

# tar -zxvf pcre-8.38.tar.gz

2.把解壓得到的包移動到/usr/local/ 中,並進入其中

# mv pcre-8.38 /usr/local/

# cd /usr/local/pcre-8.38

3.執行安裝過程

# ./configure

# make && make install

4.安裝完成

# cd /usr/local

# rm -rf /usr/local/pcre-8.38/

四、安裝Apache

1  解壓縮Apache,通讀httpd目錄裡的INSTALL檔案 

# tar -zxvf httpd-2.4.20.tar.gz 

2.把解壓得到的包移動到/usr/local/ 中,並進入其中

# mv httpd-2.4.20 /usr/local

# cd httpd-2.4.20

3.執行安裝過程

# ./configure

# make && make install

4.安裝完成會在/usr/local/ 生成一個apache2的目錄,清理殘餘檔案

# cd /usr/local/

# rm -rf httpd-2.4.20

5.啟動Apache看看是否成功安裝

# /usr/local/apache2/bin/apachectl start

執行會報錯,在/usr/local/apache2/conf/httpd.conf 的最後加上

ServerName 192.168.77.132

則重新啟動Apache,就不會報錯了(ps:192.168.77.132 為我的計算機在區域網內的IP)

因為我們是最小化安裝,所以沒有圖形介面,就要在區域網內的別的計算機測試一下,是否成功。

6.開放防火牆的80埠(Apache預設埠為80),並讓防火牆重新載入

# firewall-cmd --permanent --zone=public--add-port=80/tcp

# firewall-cmd –reload

7.在區域網內其他電腦瀏覽器位址列輸入http://192.168.77.132:80/,看到 it works歡迎頁表示成功(192.168.77.132是我的centos的IP)

五、安裝Java的JDK

1.解壓縮JDK的壓縮包

#tar -zxvf jdk-8u91-linux-x64.gz

2,將解壓縮得到的目錄,放到/usr/local/目錄下,並重命名為java

#mv jdk1.8.0_91 /usr/local/java

3.設定環境變數

# vi /etc/profile

在檔案最後加入以下內容(順便連Tomcat的環境變數也設定了吧):

export JAVA_HOME=/usr/local/java

export JRE_HOME=/usr/local/java/jre

exportCLASSPATH=.:$JAVA_HOME/lib/*.*:$JRE_HOME/lib

export PATH=$JAVA_HOME/bin:$PATH

export CATALINA_HOME=/usr/local/tomcat

export CLASSPATH=.:$CATALINA_HOME/lib/*.*

export PATH=/usr/local/tomcat/bin/:$PATH

六、安裝tomcat

1.解壓縮tomcat的二進位制壓縮包,並移動到/usr/local/目錄下

# tar -zxvf apache-tomcat-9.0.0.M4.tar.gz

# mv apache-tomcat-9.0.0.M4 /usr/local

2.安裝完成,給tomcat的目錄改個名字

# mv /usr/local/apache-tomcat-9.0.0.M4/usr/local/tomcat

3.測試是否能正常執行,開啟防火牆的8080埠

# firewall-cmd --permanent --zone=public--add-port=8080/tcp

# firewall-cmd --reload

7.在區域網內其他電腦瀏覽器位址列輸入http://192.168.77.132:8080/,看到tomcat歡迎頁表示成功(192.168.77.132是我的centos的IP)

七、安裝tomcat-connectors-1.2.41-src.tar.gz ,生成mod_jk.so ,來連線Apache與Tomcat

1.解壓縮tomcat-connectors-1.2.41-src.tar.gz,並把生成的目錄移動到 /usr/local/ 下

# tar -zxvf tomcat-connectors-1.2.41-src.tar.gz

# mv tomcat-connectors-1.2.41-src /usr/local/tomcat-connectors-1.2.41-src

2.進入/usr/local/tomcat-connectors-1.2.41-src/native,執行命令

# ./configure--with-apxs=/usr/local/apache2/bin/apxs

# make

3.make成功會在/usr/local/tomcat-connectors-1.2.41-src/native/apache-2.0/目錄中生成一個 mod_jk.so 的可執行二進位制檔案,這就是我們需要的聯結器。

4.上一步生成的mod_jk.so檔案複製到/usr/local/apache2/modules/目錄下

八、連線

1.在/usr/local/apache2/conf 目錄建立兩個新檔案 mod_jk.conf 和 workers.properties

mod_jk.conf的內容是jk的配置檔案,包括裝載模組和日誌資訊以及指定解析的工作器和目錄。workers.properties是Tomcat wokers的配置檔案。

2.編輯 /usr/local/apache2/conf/httpd.conf檔案,在檔案最後一行加入以下內容

#把jk_mod.conf檔案裝載進來

Include conf/mod_jk.conf

3.在 mod_jk.conf 里加入以下內容

#載入jk模組,名字要對應

LoadModule jk_module modules/mod_jk.so

#載入剛才新建的workers.properties檔案

JkWorkersFile conf/workers.properties

#Jk日誌檔案

JkLogFile logs/mod_jk.log

#Jk日誌的級別,引數有[debug/error/info]

JkShmFile logs/mod_jk.shm

JkLogLevel info

#Jk日誌的資料格式

JkLogStampFormat "[%a %b %d %H:%M:%S%Y] "

#Jk的一些配置選項 indicateto send SSL KEY SIZE,

JkOptions +ForwardKeySize +ForwardURICompat-ForwardDirectories

#Jk請求日誌的格式

JkRequestLogFormat "%w %V %T"

#JSP do Servlet檔案交由Tomcat處理

JkMount /servlet/* ajp13

JkMount /*.jsp ajp13

JkMount /*.do ajp13

#JkMount 表示使用Tomcat來解析, JkUnMount則相反

#jsp和servlet程式交由tomcat處理就可以了,靜態檔案圖片等仍然由Apache處理

JkAutoAlias /usr/local/apache2/htdocs*

#該資料夾下所有的靜態檔案自動交由Apache處理

4.編輯workers.properties檔案,新增以下內容

workers.tomcat_home=/usr/local/tomcat/

workers.java_home=/usr/Java/jdk/

ps=/

worker.list=ajp13

worker.ajp13.port=8009

worker.ajp13.host=localhost

worker.ajp13.type=ajp13

worker.ajp13.lbfactor=1

5.為Tomcat重建工作目錄

# mv /usr/local/tomcat/webapps /usr/local/tomcat/webapps.bak

# ln -s /usr/local/apache2/htdocs/usr/local/tomcat/webapps

九、重啟Apache和Tomcat,測試是否成功

1.在apache的工作目錄下編寫一個小jsp網頁

# mkdir /usr/local/apache2/htdocs/webs

# vi /usr/local/apache2/htdocs/webs/showtime.jsp

在其中加入以下內容:

<%@page language="java"import="java.util.*"%>

Now,the time&date is :<%out.println(new Date());%>

儲存退出

2.在區域網內的其他電腦的瀏覽器地址框內輸入

網頁上顯示當前時間

說明成功!!!