<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    [轉載]【服務配置】apache+tomcat配置負載均衡的網站

    1. 目標
    使用 apache 和 tomcat 配置一個可以應用的 web 網站,要達到以下要求:

    1、 Apache 做為 HttpServer ,后面連接多個 tomcat 應用實例,并進行負載均衡。

    2、 為系統設定 Session 超時時間,包括 Apache 和 tomcat

    3、 為系統屏蔽文件列表,包括 Apache 和 tomcat

    2. 安裝 tomcat
    2.1. 下載,解壓 tomcat
    不要下載安裝版 , 下載地址

    http://tomcat.apache.org

    2.2. 配置 tomcat
    2.2.1. 配置 server 的關閉口
    我們需要在一臺機器上跑 2 個不同的 tomcat ,需要修改不同的 tomcat 的關閉口,避免出現端口被占用的情況。在 server.xml 中找到 server, 將:

    <Server port="8005" shutdown="SHUTDOWN">

    改為

    <Server port="XXXX" shutdown="SHUTDOWN">

    XXXX 在這里表示不同的端口:我的兩個 tomcat 分別使用 8035 , 8045



    注意:這里之所以要配置不同的 tomcat 關閉口,只是因為我們使用了多個 tomcat ,其實用一個 server 多個實例也可以。

    2.2.2. 配置 service
    我們需要對不同的 tomcat 的 service 取不同的名字,在 server.xml 中找到:

    <Service name="Catalina">

    改為:

    <Service name="XXXX">

    兩個 service 分別為 tomcat6 和 tomcat5

    2.2.3. 配置 Connector
    這個部分主要是要改兩個 Connector ,當然前提是你的 tomcat 只有兩個 Connector 。

    修改 ajp1.3 的端口:

    找到: <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    改為: <Connector port="XXXX" protocol="AJP/1.3" redirectPort="8443" />

    兩個 Service 的 ajp/1.3 的端口分別為: 8019 , 8029

    修改 http 的端口:

    找到:

    <Connector port="8080" protocol="HTTP/1.1"

    maxThreads="150" connectionTimeout="20000"

    redirectPort="8443" />

    改為:

    <Connector port="XXXX" protocol="HTTP/1.1"

    maxThreads="150" connectionTimeout="20000"

    redirectPort="8443" />

    兩個 Service 的 ajp/1.3 的端口分別為: 8060 , 8070

    2.2.4. 配置 Engine
    Engine 主要是配置 jvmRoute 屬性,找到:

    <Engine name="Catalina" defaultHost="localhost">

    改為:

    <Engine jvmRoute="XXXX" name="Catalina" defaultHost="localhost">

    兩個實例分別為: tomcat6 和 tomcat5.

    2.2.5. 配置公用性 Context
    如果有 Context 是多個系統公用的,比如圖片等的存放地,可以做個配置:

    在 Host 中增加:

    <Context path="/image" docBase="D:\webRoot\image" debug="0" reloadable="false" crossContext="true">

    </Context>

    2.2.6. 屏蔽文件列表
    打開 tomcat 目錄下的 conf/web.xml ,

    找到:

    <servlet>

    <servlet-name>default</servlet-name>

    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

    <init-param>

    <param-name>debug</param-name>

    <param-value>0</param-value>

    </init-param>

    <init-param>

    <param-name>listings</param-name>

    <param-value>true</param-value>

    </init-param>

    <load-on-startup>1</load-on-startup>

    </servlet>

    將 listings 參數改為 false;

    2.3. 配置應用 (web.xml)
    對系統應用做些控制。

    配置 session 過期時間,大多數網站用戶都只是做些瀏覽性的操作,為了減輕服務器負載壓力,我們將 session 超時時間從默認的 30 分鐘變為 5 分鐘。

    在 web 應用程序的 web.xml 中 servlet-mapping 之后增加如下一段:

    <session-config>

    <session-timeout>5</session-timeout>

    </session-config>

    3. 安裝 Apache
    3.1. 下載、安裝 Apache
    下載地址
    http://httpd.apache.org/download.cgi

    下載后點擊安裝 msi 文件。

    安裝的時候沒有什么特別需要注意的地方,按照默認就行了。是否安裝為 service 看具體情況而定。

    3.2. 下載、安裝 Apache 、 tomcat 的 Connector
    http://tomcat.apache.org/download-connectors.cgi

    注意,很多網站上都介紹是 JK2 ,可能是覺得 JK2 比 JK 要新吧,其實 JK2 已經停止研發了,建議使用 jk1.2 。

    下載壓縮包,之后將 module 目錄中的 mod_jk-apache****.so 文件放入 /module/ 目錄下。

    3.3. 配置 Apache ( httpd.conf )
    3.3.1. 配置端口:
    找到

    Listen 80

    改為

    Listen **

    當然如果不需要改的話,就不用改了。正常情況無須更改。

    3.3.2. 配置 DocumentRoot
    找到 DocumentRoot 段,將其改為:

    DocumentRoot "E:/MyWebsite"

    這里的 "E:/MyWebsite" 指的是你的 web 程序的根路徑,視具體應用而定。

    3.3.3. 配置 serverName
    找到 serverName 這個段,將其配置為你的 ServerName

    如果沒有配置為域名,配為 IP 也可以,此處還不是很清楚,多虛擬主機的情況的配置。

    3.3.4. 配置虛擬主機
    <VirtualHost *:80>

    ServerAdmin
    flyffa@gmail.com

    DocumentRoot E:/MyWebsite

    ServerName localhost

    DirectoryIndex index.html index.htm index.jsp

    ErrorLog logs/error_log

    CustomLog logs/access_log common

    ErrorDocument 404 /sys/logon.jsp

    </VirtualHost>

    3.4. 配置 JK 方式的負載均衡
    3.4.1. 配置 module
    我們需要與 tomcat 做連接,所以要把 tomcat 的 connector 的模塊配置進去。

    在 LoadModule 部分加入:

    LoadModule jk_module modules/mod_jk-apache-2.0.55.so -加載模塊

    這個 so 是我下載的版本,個人可以根據自己下載的文件名加以配置

    JkWorkersFile conf/workers.properties -指定 connector 的配置文件名稱

    JkLogFile logs/mod_jk.log -指定 connector 的日志文件名稱

    JkLogLevel info -指定 connector 的日志等級

    3.4.2. 配置 worker 列表 (conf/workers.properties)
    定義列表

    worker.list=tomcat6,tomcat5,loadbalancer

    定義一個名為 “loadbalancer” 的 worker

    其作為對多個 Tomcat 進程的負載平衡使用:

    worker.loadbalancer.type=lb

    worker.loadbalancer.balanced_workers=tomcat5, tomcat6

    ( 負載平衡類型的 worker 并不與 Tomcat worker 通訊,它負責管理這些 Tomcat worker 。 )

    定義多個 worker 列表

    # Set properties for tomcat6 (ajp13)

    worker.tomcat6.type=ajp13

    worker.tomcat6.host=localhost

    worker.tomcat6.port=8019

    worker.tomcat6.lbfactor=50

    worker.tomcat6.cachesize=10

    worker.tomcat6.cache_timeout=600

    worker.tomcat6.socket_keepalive=1

    worker.tomcat6.reclycle_timeout=300



    # Set properties for tomcat5 (ajp13)

    worker.tomcat5.type=ajp13

    worker.tomcat5.host=localhost

    worker.tomcat5.port=8029

    worker.tomcat5.lbfactor=50

    worker.tomcat5.cachesize=10

    worker.tomcat5.cache_timeout=600

    worker.tomcat5.socket_keepalive=1

    worker.tomcat5.reclycle_timeout=300

    注意: lbfactor= 50 ( 當此 Tomcat worker 被用于一個負載平衡 worker 使用時,此屬性將被使用。它定義了此 worker 的負載平衡權值。 )

    cachesize= 10 ( 當在多線程的 web server (例如 apache2.0 、 IIS 、 Netscape )中使用 JK 時,此屬性是有效的。如果將 cachesize 的值設置為較高的值,這些支持多線程的 web server 將獲得很好的處理能力。如果此屬性不被設置,則連接 cache 特性將失效。 )

    3.4.3. 配置 Apache 到 tomcat 的橋接
    在 DocumnetRoot 片段下加入

    JkMount /*.jsp tomcat6

    JkMount /*.do tomcat6

    JkMount /*Servlet tomcat6

    這里只是簡單的將 apache 的請求轉到其中的一個 tomcat 中,形成橋接,至于負載均衡的時候,就無須進行這步操作,直接啟動負載均衡。啟動負載均衡見下一節。

    3.4.4. 啟動負載均衡
    在 DocumnetRoot 片段下加入

    JkMount /*.jsp loadbalancer

    JkMount /*.do loadbalancer

    JkMount /*Servlet loadbalancer

    -指定對所有的請求啟動負載均衡,這里的 loadbalancer 是定義的 worker 的名字

    這里我在配置的時候犯了兩個錯誤:

    第一是沒有配置 JkWorkersFile conf/workers.properties ,以為 Apache 會自動認識(其實 apache 是自動產生了一個叫做 ajp13 的 worker ,指向本機的 8009 端口)。

    第二是以為 JkMount 語句中出現 loadbalancer,ajp13 之類的是系統設定的東西,其實都是在 workers.properties 文件中定義的,結果出現名字不匹配的情況。后來配置了 JkLogFile logs/mod_jk.log 之后看到錯誤日志才明白。

    3.5. 配置 Proxy 方式的負載均衡
    使用 Apache2.1 以上的版本,就可以用 mod_proxy_ajp 來完成負載均衡的配置,不過到目前為止,沒有看到如何讓 Apache 負責靜態部分, tomcat 負責動態部分的配置方式,只能用 path 進行區分分發請求。如:在虛擬主機的配置中增加:

    ProxyPass / ajp://localhost:8019/

    ProxyPassReverse / ajp://localhost:8019/

    而形如:

    ProxyPass /*.jsp ajp://localhost:8019/

    ProxyPassReverse /*.jsp ajp://localhost:8019/

    這樣的配置是不能通過的。

    posted on 2007-01-09 20:35 會飛的魚 閱讀(186) 評論(0)  編輯  收藏 所屬分類: Tomcat


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    友情鏈接

    開源鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲人成77777在线播放网站不卡 亚洲人成77777在线观看网 | 久久国产免费福利永久| 亚洲一区二区三区91| 日本不卡免费新一二三区| 成人A毛片免费观看网站| 亚洲福利视频网址| 亚洲爽爽一区二区三区| 久久WWW免费人成一看片| 污视频网站在线观看免费| 亚洲酒色1314狠狠做| 亚洲第一页日韩专区| 69式互添免费视频| 三年片在线观看免费观看大全中国 | 天天摸夜夜摸成人免费视频| 久久久久久噜噜精品免费直播| 亚洲国产av美女网站| 伊人亚洲综合青草青草久热| 毛片网站免费在线观看| 你是我的城池营垒免费看 | 老汉色老汉首页a亚洲| 亚洲成AⅤ人影院在线观看| 曰批全过程免费视频网址| 精品乱子伦一区二区三区高清免费播放| 亚洲日本香蕉视频观看视频| 亚洲综合亚洲综合网成人| 免费A级毛片无码免费视| 一级做a爰全过程免费视频| 一区二区视频在线免费观看| 亚洲精品一卡2卡3卡四卡乱码| 亚洲精选在线观看| 国内精品久久久久久久亚洲| 浮力影院第一页小视频国产在线观看免费| 青柠影视在线观看免费高清| 国产亚洲精品精品精品| 亚洲www77777| 亚洲国产超清无码专区| 亚洲va无码手机在线电影| 亚洲成AⅤ人影院在线观看| 成在线人永久免费视频播放| 青娱乐免费在线视频| 久久w5ww成w人免费|