Ubuntu Apache2 與Tomcat 7 整合步驟

來源:互聯網
上載者:User

寫在前面

網上已經有很多關於如何整合Apache2與Tomcat的文章(有寫的不錯的), 但有時看與實踐往往有些差距, 所謂實踐出真知. 要真的去做了, 才是真正的懂.

以下是昨天剛實踐的, 以此總結, 以後少走彎路.


軟體及版本

Ubuntu 12.04(64位)

Apache 2.2.22

Tomcat 7.0.55

AJP13 mod_jk-1.2.31-httpd-2.2.x


僅在一台機器上配置, 只有一個Tomcat(若有兩個及以上的Tomcat, 需要修改workers.properties).


整合步驟

1.安裝Apache2與OpenJDK

這兩個安裝只需要執行下面的命令即可

apt-get install apache2
安裝後在瀏覽器輸入http://ip_address 測試下是否正確
apt-get install openjdk-7-jre-headless

安裝後執行java -version 命令測試下JDK安裝是否正確


2.安裝Tomcat 7

到Tomcat 7的下載頁面http://tomcat.apache.org/download-70.cgi 去下載. 在Ubuntu系統中使用wget下載,命令如下

wget http://apache.fayea.com/apache-mirror/tomcat/tomcat-7/v7.0.53/bin/apache-tomcat-7.0.53.tar.gz
下載後使用tar命令解壓. 並運行測試下.

此處使用預設的8080連接埠與 AJP13的8009連接埠.


3.安裝AJP13並配置

AJP13是串連Apache2與Tomcat的連接器. 通過mod_jk來實現,命令如下

apt-get install libapache2-mod-jk
安裝後到/etc/libapache2-mod-jk目錄, 查看下有沒有workers.properties


使用vi workers.properties命令編輯該檔案.

需要修改以下幾個地方

1). 修改workers.tomcat_home與workers.java_home的值為正確的路徑  (這一步是可選,但建議配置上)

2). 在worker.list後面添加jk-status,jk-manager的值, 配置後如下

worker.list=ajp13_worker,jk-status,jk-manager
(若不加上這兩個值為在apache2啟動後看到一些警告資訊)

jk-status與jk-manager用於監控mod_jk的運行與管理(預設只能在本機才能訪問)

其他的使用預設值, 在這兒可以看到預設已經建立了一個名叫ajp13_worker 的worker. 記住這名字, 以後為用到.

修改後記得儲存.



4.配置攔截規則

此處最重要,用於指定哪些URL由Apache處理, 哪些URL需要轉給Tomcat處理.(建議規則為: 所有靜態資源由Apache處理,如圖片,JS,CSS, 動態轉給Tomcat處理,如載入資料,業務處理部分)

進入/etc/apache2/sites-available目錄.編輯default檔案(命令vi default)

在</VirtualHost>標籤之前與最後一個</Directory>之後添加,樣本如下

    JkUnMount /*.js ajp13_worker    JkUnMount /*.css ajp13_worker    JkUnMount /*.htm ajp13_worker    JkUnMount /*.png ajp13_worker    JkUnMount /*.gif ajp13_worker    JkUnMount /*.jpg ajp13_worker    JkUnMount /*.jpeg ajp13_worker
 
    JkMount /*.jsp ajp13_worker
JkMount /*.zsfz ajp13_worker
 

 應該一看就明白了吧, JkUnMount 指定哪些匹配的URL由Apache處理, JkMount指定哪些匹配的URL轉給Tomcat處理,如此處配置所有以zsfz,jsp結束的URL轉給Tomcat處理. 記得之前叫記得的ajp13_worker有吧 , 在這兒用上了. 

除了使用JkUnMount與JkMount方式以外, 還有其他的方式. 這兒由讀者去擴充學習下吧.

最後修改好, 別忘了儲存.

至此 , 整合配置完成, 下來是測試了. 

1.在Tomcat的Webapps目錄裡先刪除之前所有的檔案(與檔案夾), 建立一個ROOT目錄, 在ROOT目錄裡建立一個test.jsp檔案, 裡面隨便加點內容.

啟動Tomcat 通過http://ip_address:8080/test.jsp訪問test.jsp,保證測試通過(注意這兒是直接存取Tomcat)

2.重啟Apache2, 命令 /etc/init.d/apache2 restart

通過http://ip_address/test.jsp訪問,若能訪問成功並且內容與之前直接存取Tomcat的一致,則說明配置成功(注意: 此處不加連接埠)

同理, 你可以放一張圖片到apache2的根目錄/var/www裡, 並直接存取看能成功否. 

---------------------------------------------------------------------

有用的擴充

URL中對中文的支援.(若測試用中文的URL參數會出現亂碼, 這是字元編碼的問題), 通過設定UTF-8編碼來解決

1.設定Apache預設的字元編碼為UTF-8. 在安裝完成後進入/etc/apache2/conf.d/目錄, 編輯charset檔案, 將裡面的AddDefaultCharset UTF-8 前面的#號取消並儲存, 記得重啟.

2.編輯Tomcat 的conf/server.xml檔案, 將裡面的AJP13的配置添加URIEncoding="UTF-8" 內容. 添加後如下

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />

OK, 支援中文參數了.




參考文章

http://yr512656630.iteye.com/blog/933458

http://www.cnblogs.com/junsong/archive/2012/07/03/2574447.html


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.