Apache 和tomcat 的環境搭建

--------
此處接上文配置的ssl的環境  這個現在有問題 待解決 勿看

以下此爲大神的轉載./幫了不少忙 恩
http://blog.csdn.net/stefyue/article/details/6918542

那麼首先就來說下Apache和Tomcat的區別:

Apache只是一個Web服務器,可以作爲獨立的web服務器來運行,不過只支持靜態網頁,如(asp,php,cgi,jsp)等動態網頁的就顯得無能爲力。

Tomcat也可以作爲獨立的web服務器來運行。但Tomcat也是應用(java)服務器,它只是一個Servlet容器。
由於Apache解釋靜態頁面要比tomcat快速而且穩定, 基於以上原因,一個現實的網站使用一個Apache作爲Web服務器,爲網站的靜態頁面請求提供服務;

並使用Tomcat服務器作爲一個Servlet/JSP插件,顯示網站的動態頁面;

Apache+Tomcat整合的好處:

  1. Apache主要用來解析靜態文本,如html,tomcat雖然也有此功能,但apache能大大提高效率,對於併發數較大的企業級應用,能更好的顯示apache的高效率;
  2. Tomcat用來解析jsp,servlet等,所有的客戶請求首先會發送到Apache,如果請求是靜態文本則由apache解析,並把結果返回給客戶端,如果是動態的請求,如jsp,apache會把解析工作交給tomcat,由tomcat進行解析(這首先要兩者現實整合),tomcat解析完成後,結果仍是通過apache返回給客戶端,這樣就可以達到分工合作,實現負載均衡,提高系統的性能!而且因爲JSP是服務器端解釋代碼的,這樣整合可以減少Tomcat的服務開銷。

Apache+Tomcat整合的原理

作爲Apache下面的子項目,Tomcat 與 Apache之間有着天然的聯繫。在實際操作中,主要是Apache作爲主服務器運行,當監聽到有jsp或者servlet的請求時,將請求轉發給tomcat服務器,由tomcat服務器進行解析後,發回apache,再由apache發回用戶。

在tomcat中有兩個監聽的端口,一個是8080用於提供web服務,一個是8009用於監聽來自於apache的請求。當apache收到jsp或者servlet請求時,就向tomcat 的8009端口發送請求,交由tomcat處理後,再返回給apache,由apache返回給客戶。


自己實際操作

java的環境百度 /沒錯 我就是在偷懶

配置Tomcat

set CATALINA_BASE = C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\
set CATALINA_HOME = C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\
set CLASSPATH = %CLASSPATH %;%CATALINA_HOME%\lib\servlet-api.jar

在tomcat的conf目錄下建一個workers.properties的文本文件,添加如下配置

//讓mod_jk模塊知道Tomcat的安裝路徑 

workers.tomcat_home= C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\

//讓mod_jk模塊知道jre的位置

workers.java_home=C:\Program Files\Java\jre1.7.0_18

//模塊版本,這裏是關鍵,名字要和httpd.conf的一致。如果這裏改了httpd.conf也要改。

worker.list=ajp13

//工作端口,tomcat的jk監聽端口,可以查看Server.xml中有port="8009" 

worker.ajp13.port=8009 

//Tomcat所在機器,如果安裝在與apache不同的機器則需要設置IP

worker.ajp13.host=localhost

//通訊協議類型,好像不能改,會出問題 

worker.ajp13.type=ajp13 

//負載平衡因子

worker.ajp13.lbfactor=1

此處有小問題 上述配置是一個電腦上配置一個apache和一個tomcat 如果是不同的電腦上配置不同的tomcat來整合一個集羣 就是如下的設置了 先挖一個坑 以後填 此處只是稍微提一下 因爲還有其他的配置

worker.list = controller,tomcat1,tomcat2,tomcat3

worker.tomcat1.port=11009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1

worker.tomcat2.port=12009
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1

worker.tomcat3.port=13009
worker.tomcat3.host=192.168.0.80 //在我的虛擬機中的,可以算遠程的吧
worker.tomcat3.type=ajp13
worker.tomcat3.lbfactor = 1

controller,負載均衡控制器
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
worker.controller.sticky_session=1

tomcat的conf目錄下,修改文件server.xml。配置在中間加入以下語句以修改其默認的目錄:

<Context path="" docBase="E:\wwwroot" reloadable="true" crossContext="true"/>

配置Apache:打開c:\Apache2.2\conf下的httpd.conf。

//在最後加入下面這
//此處mod_jk的文件爲你下載的文件
LoadModule jk_module modules/mod_jk.so
//指定tomcat監聽配置文件地址
JkWorkersFile "C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\conf\workers.properties"
//指定日誌存放位置;以及日誌級別
JkLogFile "C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\logs\mod_jk2.log" 
JkLogLevel info
add mod_jk(tomcat) end
//讓Apache支持對servlet傳送,用以Tomcat解析
JkMount /servlet/* ajp13 
//讓Apache支持對jsp傳送,用以Tomcat解析
JkMount /*.jsp ajp13 
//讓Apache支持對.do傳送,用以Tomcat解析
JkMount /*.do ajp13  //(此處就是一個自定義的 如果多tomcat的controll 需要對應  另外開貼說明)
//外需要修改文件中的相關配置。(可以在文件中找到原有的配置)

站點項目所在路徑,應與tomcat中的目錄設置相同,據說以上兩個必須同時設置纔可以生效,沒有試過不同的時候會有什麼情況

<Directory "${SRVROOT}/htdocs">
ServerName localhost //此處我用的是上篇文章中的那個servername

//這裏是系統目錄默認的儲存根目錄 因爲已經在前文中配置好了localhost 所以這裏不用配置 直接寫localhost就可以 另外apache服務器指的就是安裝的apache 時候利用了系統的IP和部分資源來搭建

修改完所有的配置,那麼現在可以重新啓動Apache和Tomcat.

在地址欄中分別輸入http://localhost/,與http://localhost:8080/若結果相同,Apache與Tomcat整合成功

在這遇到了apche無法重啓的問題 一看是workers.properties的文件放錯了 要放在tomcat的文件中 因爲就是啓動apache去讀取tomcat的這個配置文件來加載jk模塊連接apache和tomcat的

經常可以使用“Apache負載均衡+Tomcat集羣”的模式來提高系統整體性能。
1 Apache 做爲 HttpServer ,後面連接多個 tomcat 應用實例,並進行負載均衡。
2爲系統設定 Session 超時時間,包括 Apache 和 tomcat
3爲系統屏蔽文件列表,包括 Apache 和 tomcat
注:本例程以一臺機器爲例子,即同一臺機器上裝一個apache和4個Tomcat。
Apache在前面最爲http轉發的“關口”,然後將訪問負載均衡到後面的Tomcat服務器集羣,這樣就實現了負載均衡。
加之客戶端緩存(Cookie)和服務器端緩存(Session)。然後注意一些其他編程習慣和算法的應用。你的Web系統的整體性能就會得到比較好的保障。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章