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.在區域網內的其他電腦的瀏覽器地址框內輸入
網頁上顯示當前時間
說明成功!!!