Apache,Tomcat集群和负载均衡

Apache,Tomcat集群和負載均衡

搭建環境:Windows+Apache+jdk1.6+Tomcat+mod_jk.so(本機的windows32位機,所下載文件全是32位機可用)

Apache http://apache.etoak.com/httpd/binaries/win32/httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi

Tomcathttp://labs.renren.com/apache-mirror/tomcat/tomcat-6/v6.0.26/bin/apache-tomcat-6.0.26-windows-x86.zip (此版本直接解壓就可以使用,比起windows下的tomcat安裝包里面的工具更多一些!)

mod_jk.so :http://apache.etoak.com/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.30/mod_jk-1.2.30-httpd-2.2.3.so

jdk1.6 : http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u18-windows-i586.exe?BundledLineItemUUID=IsVIBe.liaEAAAEnInIZJnRt&OrderID=v7FIBe.lHjoAAAEnFnIZJnRt&ProductID=Vh5IBe.pm2QAAAElRytRSbJV&FileName=/jdk-6u18-windows-i586.exe

 

由于是在虛擬機上面實驗,只有一個C盤,so 把所有的都裝在了C盤的根目錄

1.安裝JDK 安裝目錄為

|--C盤
     |-----Java
               |-----jdk1.6.0_18
               |-----jre6

<!-- 真是糾結 ,本來都快寫完了,也不知道是 ff 的問題還是 javaeye 的問題,都沒有了,還得重新寫,我明明,都保存了的,我寫點就保存,怎麼還是沒有呢? 悠悠的傷心,白整理 3 個小時!真浪費時間,下次就整理好再發佈, tmd -->

1.1 設置環境變數,我的電腦右鍵 屬性 – “ 高級 選項卡 環境變數 系統變數

找到 path ,添加如下內容:

;C:\Java\jdk1.6.0_18\bin;

 ( 與前面的要用 ; 隔開 )

 

如圖所示:

1.2   添加 classpath 環境變數,在系統變數裏面新建環境變數 classpath ,添加如下內容:

 

.;C:\Java\jdk1.6.0_18\lib;C:\Java\jdk1.6.0_18\lib\dt.jar;C:\Java\jdk1.6.0_18\lib\tools.jar;

 ( 注意前面要有 .; 2 個符號 ), 如圖所示:

1.3 添加 JAVA_HOME 環境變數,在系統變數裏面新建環境變數 JAVA_HOME ,添加如下內容:

 

C:\Java\jdk1.6.0_18;

 如圖所示:

 

2. 配置 apache apache 配置檔目錄為

c:\Apache2.2\conf\httpd.conf

 所用到的文件分佈

 

 

c:\Apache2.2
   |   +--bin
   |   |
   |   |-httpd.exe
   |   +--conf                 -- configuration for Apache
   |   |
   |   |-httpd.conf
   |   |-workers.properties
   |   +--extra
   |   |-mod_jk.conf
   |   |-..   
   |   +--logs
   |   |
   |   |-access.log             -- Access log
   |   |-error.log                -- Error log
   |   |-mod_jk.log            -- mmod_jk log
   |   |
   |   +--… 
 

2.1 C:\Apache2.2\conf\extra 新建文件 mod_jk.conf   

檔內容:

#載入mod_jk Module
LoadModule jk_module modules/mod_jk.so
#指定 workers.properties檔路徑
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
#指定那些請求交給tomcat處理,"controller"為在workers.propertise裏指定的負載分配控制器
JkMount /*.jsp controller
JKMount /servlet/* controller
JKMount /*.do controller
 

從上面的檔內容可以看到 (1). 需要載入模組 mod_jk.so (2). 需要在 apache 的配置檔所在的同一個目錄下麵新建檔 workers.properties (3). 設置 mod_jk 的日誌檔的存放位置 (4). 遇到 .jsp 或者是 servlet 或者是 .do 的請求,就把 request 交給 tomcat ,而 controller 會在 workers.properties 文件中說明 .

Ok! 開始從上面的要求做起:

2.1.1 載入 mod_jk 模組 ,把下載下來的 mod_jk.so 文件放在 C:\Apache2.2\modules 目錄下麵

2.1.2 新建屬性檔 workers.properties ,內容如下:

 

worker.list = controller,tomcat1,tomcat2  #server 列表

#========tomcat1========
worker.tomcat1.port=8009    #ajp13 埠號,在 tomcat 下 server.xml 配置 , 默認 8009
worker.tomcat1.host=localhost  #tomcat 的主機位址,如不為本機,請填寫 ip 地址
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1   #server 的加權比重,值越高,分得的請求越多

#========tomcat2========
worker.tomcat2.port=9009       #ajp13 埠號,在 tomcat 下 server.xml 配置 , 默認 8009
worker.tomcat2.host=localhost  #tomcat 的主機位址,如不為本機,請填寫 ip 地址
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1    #server 的加權比重,值越高,分得的請求越多

#========controller, 負載均衡控制器 ========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2   # 指定分擔請求的 tomcat
worker.controller.sticky_session=1 

從內容看出由 controller 負責轉發 request ,負載均衡可以採用多種方法,這裏把權值設置成一樣的,讓控制器 controller 對其進行輪詢分佈 request ,如果是多台伺服器份做負載均衡,就可以再加上,就 OK 了!

2.1.3 這一步不用做,伺服器會自動的產生日誌到指定的目錄!~

2.1.4 3 行是為了告知 apache 那些 request 交給 tomcat 去處理,規則還可以自行加入!~

 

2.2 上面的步驟說明配置檔已經寫好,現在要讓 apache 知道這個配置檔所在的位置,因為 apache 只會自動的去讀取 httpd.conf 文件, so 打開 C:\Apache2.2\conf\httpd.conf 檔,在最後添加一句:

Include conf/extra/mod_jk.conf

 

 2.3 至此 apache 配置完成!

3. 配置 tomcat 伺服器: ( 說明: 如果你在不同電腦上安裝 tomcat,tomcat 的安裝數量為一個,可以不必修改 tomcat 配置檔 ) 把下載的壓縮包解壓成 tomcat6_1,tomcat6_2 ,這裏只是個檔案名,用於自己區分,沒有其他意義 , 上面 workers.properties 檔中的 tomcat1,tomcat2 跟這 2 個檔夾的名稱沒有關係。解壓後目錄位置是:    

 

 
c:\
   +--tomcat6_1
   |  |
   |  +--bin
   |  +--conf
   |  +--lib
   |  +--logs
   |  +--… 
   +--tomcat6_2   
   |  +--bin
   |  +--conf
   |  +--lib
   |  +--logs
   |  +--… 
 

3.1 配置 tomcat 伺服器 tomcat6_1 伺服器不需配置 ,tomcat6_2 需要配置)

配置檔 server.xml 所在目錄為: C:\tomcat6_2\conf\server.xml



 

 

 

 

在這一行的下面再加入一行,內容為:

< Connector  port="9082" 
    maxThreads="150" minSpareThreads="25" 
    maxSpareThreads="25" enableLookups="false" acceptCount="100" 
    connectionTimeout="20000" proxyPort="80" disableUploadTimeout="true" 
/>
 

 

3.2 建立測試文件 。在 C:\tomcat6_1\webapps 下新建目錄 chen ,建立測試檔 chen.jsp

  內容為:

 

<%
System.out.println("=================Test Load Balance=================");
%> 

然後把 chen 的目錄複製到 C:\tomcat6_2\webapps 的目錄下,

3.3 測試

   3.3.1 運行 tomcat6_1 伺服器,在目錄 C:\tomcat6_1\bin 下的 startup.bat ,開啟正常,注意不要關閉

   3.3.2 運行 tomcat6_2 伺服器,在目錄 C:\tomcat6_2\bin 下的 startup.bat ,開啟正常,注意不要關閉

3.3.3 運行 apache 伺服器,開始 —- 程式 -- Apache HTTP Server 2.2 -- Control Apache Server                    - — -Start web 伺服器開啟正常!

   3.3.4 打開浏览器 输入 http://localhost/chen/chen.jsp

頁面不會做任何顯示,因為代碼的作用是在控制臺顯示,不是在頁面顯示 , 查看控制臺,有一個 tomcat 控制臺顯示出來,然後刷新以後,另外一個 tomcat 控制臺也顯示出來。

如圖所示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值