1. 程式人生 > >Linux系統Apache2.4+Tomcat7.0整合配置

Linux系統Apache2.4+Tomcat7.0整合配置

今天是9月1號了,又開學了,中午跟同事一起去附近一個大學的食堂吃飯,看見了好多學生,走在食堂裡總有種格格不入的感覺,感嘆之餘,發現自己已不再是學生了。大學時光多麼美好啊,逝去的時光,留下了美好的回憶。感慨發完,繼續來寫Apache2.4+Tomcat7.0整合配置。

一、安裝Apache

二、Tomcat的安裝配置

下載Tomcat的安裝包,我下載的版本是apache-tomcat-7.0.81。
Tomcat官網下載:http://tomcat.apache.org/

2、安裝jdk

  • 下載後,首先把jdk-8u144-linux-x64.rpm複製到/usr/local
#cp
jdk-8u144-linux-x64.rpm /usr/local
  • 給所有使用者新增可執行許可權
#chmod +x jdk-8u144-linux-x64.rpm
  • 開始安裝程式
#rpm -ivh jdk-8u144-linux-x64.rpm
  • 安裝結束後,jdk會安裝在/usr/java裡,然後配置環境變數,在 /etc/profile 中加入以下內容:
# vi /etc/profile      //進入profile檔案加入以下內容:

export JAVA_HOME=/usr/java/jdk1.8.0_144  
export JRE_HOME=/usr/java/jdk1.8.0
_144/jre exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin # source /etc/profile //使配置生效 # java -version //測試jdk是否安裝成功

3、Tomcat的安裝

  • 解壓安裝包
# mkdir /usr/local/tomcat
# cd /usr/local/tomcat
# tar -zxvf /software/apache-tomcat-7.0.81.tar.gz
  • 啟動Tomcat
 # cd /usr/local/tomcat/bin
 # ./startup.sh

  • 如果出現 ” Using_JRE_HOME:/usr/ “這種情況的,那可能是沒有執行 ” # source /etc/profile “這句命令。
    或者可以在” /usr/local/apache-tomcat-7.0.81/bin “資料夾下的setclasspath.sh檔案的開頭加入下面的內容:
export JAVA_HOME=/usr/java/jdk1.8.0_144  
export JRE_HOME=/usr/java/jdk1.8.0_144/jre
  • 開啟防火牆,使外部能訪問
 # /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
 # service iptables save
 # service iptables restart
  • 如果是阿里雲的ecs伺服器可以配置新增安全組規則,

三、編譯生成mod_jk.so檔案

1、下載tomcat-conntector壓縮包,我下載的版本是tomcat-connectors-1.2.42-src.tar.gz,這個要跟安裝的Apache版本匹配,我的Apache伺服器版本是Apache/2.4.6。
官網下載地址:http://tomcat.apache.org/download-connectors.cgi

2、下載後,首先把tomcat-connectors-1.2.42-src.tar.gz複製到/usr/local

# cp tomcat-connectors-1.2.42-src.tar.gz /usr/local
  • 解壓
# tar -xzvf tomcat-connectors-1.2.42-src.tar.gz /usr/local
  • 解壓後,進入native資料夾
# cd /usr/local/tomcat-connectors-1.2.42-src/native
# ./configure --with-apxs=/usr/bin/apxs(此處apxs地址可能不一樣,可用命令" whereis apxs "來檢視)
# make
  • 完成編譯後,在/usr/local/tomcat-connectors-1.2.42-src/native/apache-2.0資料夾下可以找到mod_jk.so檔案。將這個檔案複製到apache安裝路徑下的modules資料夾下,我是用yum安裝的,所以我的apache預設安裝路徑是/usr/lib64/httpd。到這裡也就完成了編譯的步驟。

3、問題:在編譯mod_jk.so檔案的時候,我遇到了找不到apxs檔案,所以編譯不了,apxs是一個為Apache HTTP伺服器編譯和安裝擴充套件模組的工具,用於編譯一個或多個源程式或目的碼檔案為動態共享物件,使之可以用由mod_so提供的LoadModule指令在執行時載入到Apache伺服器中。

(1) 檢查 apxs 有沒有安裝。” # whereis apxs ”
(2) 如果沒有的話,先安裝apxs

# cd /etc/
# vi yum.conf
// 如果有關於 apache or httpd 的 "exclude"這樣一行,把它註釋掉;如果沒有,就直接退出就行
// 儲存並退出
# yum install apr-util-devel
# yum install httpd-devel
# whereis apxs
// 做完這幾步以後,你就應該有 "/usr/bin/apxs" 這個檔案了。

四、整合Apache和Tomcat

1、建立相關配置檔案
* 進入apache安裝路徑下的conf資料夾,建立兩個檔案,mod_jk.conf以及workers.properties。

mod_jk.conf 內容如下:

#LoadModule jk_module modules/mod_jk.so  

JkWorkersFile /etc/httpd/conf/workers.properties  
# Where to put jk logs  
JkLogFile /var/log/httpd/mod_jk.log  

# Set the jk log level [debug/error/info]  
JkLogLevel info  

# Select the log format  
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"  

# JkOptions indicate to send SSL KEY SIZE,   
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories  
# JkRequestLogFormat set the request format   
JkRequestLogFormat "%w %V %T"  

JkMount /*/servlet/*  worker1  
JkMount /*.jsp worker1  
JkMount /application/* worker1  
JkMount /*.do worker1  
JkMount /*.class worker1  
JkMount /*.jar worker1  
  • 其中,前兩個引數(JkWorkerFile和JkLogFile)具體的值會因為apache安裝路徑的不同而不同,此處需寫入自己的apache伺服器的路徑。
    檔案末尾的幾行JkMount意思是將符合條件的檔案交給Tomcat處理。中間則是一些常規引數的設定。

workers.properties內容如下

# Defining a worker named worker1 and of type ajp13  
worker.list=worker1  

# Set properties for worker1  
worker.worker1.type=ajp13    
worker.worker1.host=localhost    
worker.worker1.port=8009  
worker.worker1.lbfactor=50    
worker.worker1.cachesize=10    
worker.worker1.cache_timeout=600    
worker.worker1.socket_keepalive=1    
worker.worker1.socket_timeout=300
  • 接著是對/conf資料夾下自帶的httpd.conf檔案加入如下內容:
LoadModule jk_module modules/mod_jk.so
Include /etc/httpd/conf/mod_jk.conf
<VirtualHost *:80>
     DocumentRoot "/usr/local/apache-tomcat-7.0.81/webapps/test"
     JkMount /* worker1
</VirtualHost>
  • 儲存之後重啟Apache和Tomcat。

  • 如果出現Apache啟動報錯,那可能是mod_jk.so檔案的版本跟Apache版本不符合,需要重新下載,編譯。

測試成功: