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

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

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

    This Is A FineDay

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      93 隨筆 :: 0 文章 :: 69 評論 :: 0 Trackbacks

    ? 安裝Apache ,配置負載均衡

    1.1.1 ?????? 安裝

    1 )點擊文件 apache_2.0.48-win32-x86-no_ssl.msi

    2 )安裝路徑為 D:/ JIANGXI/Apache Group/Apache2

    說明:

    A、 需要輸入 Network Domain Server Name Administrator's Email Address

    “Network Domain” 里輸入域。如果用本站的二級域名,例如 “test.dnschek.net” ,請輸入 “test.dnschek.net” 。如果用頂級域名,請輸入 “xxx.com” 1166.jx163.com

      在 “Server Name” 里輸入服務器名。如果用本站的二級域名,請輸入您的域名 “test.dnschek.net” 。如果用頂級域名,請輸入 “www.xxx.com”

      在 “Administrator's Email Address” 里輸入網站管理員的 Email 地址。

    B、 選擇典型安裝。

    C、 其他 采用默認配置。

    D、 如果系統安裝了其他 Web 服務器,如 IIS WPS 等,占用了 80 端口的話,可以在 Apache 安裝的時候,選擇使用其他端口,如 8080 等。或者把 IIS 的所有 Web 站點停止。

    ?

    1.1.2 ?????? Modules 下添加.so文件

    1 )下載 apache 的一個組件 Jakarta-tomcat-connectors-jk2.0.4-win32-apache2.0.49.zip

    解壓縮后將 modules 目錄里面的 mod_jk2.so 文件, copy Apache 安裝目錄下 modules 文件夾里

    1.1.3 ?????? 配置參數 httpd.conf

    需要注意參數配置如下:

    (1) 在行 "# LoadModule foo_module modules/mod_foo.so", 加入如下行 :

    						# Load mod_jk
    						LoadModule jk_module modules/mod_jk.so
    						#
    						Configure mod_jkJkWorkersFile conf/workers.propertiesJkLogFile logs/mod_jk.logJkLogLevel info

    ? 2 )在參數 DocumentRoot 下加入如下行:

    ??? ?JkMount /* loadbalancer

    3 )編輯 Apache\Apache Group\Apache2\conf\ 目錄下的 httpd.conf 文件,找到 ServerName 這一項參數,這一行是被注釋掉的(前面有#的符號)。去掉前面的在 "#" 符號,并在后面填入你的 hostname IP 地址,在這里設置為:

    ServerName 1166.jx163.com:80

    說明:詳細的配置信息,參見 .\4-WEB\Apache\Apache Group\Apache2\conf\httpd.conf

    1.1.4????????? 配置參數 workers.properties

    1 定義 Workers 列表: # list the workers by name

    worker.list=tomcat1, tomcat2, tomcat3,? loadbalancer

    ?

    2 定義 Workers 的類型: # First tomcat server

    worker.tomcat1.port= 8009?????? Tomcat worker 主機的偵聽端口。

    worker.tomcat1.host= 127.0.0.1?? 偵聽 ajp13 請求的 Tomcat worker 主機

    worker.tomcat1.type= ajp13???? (說明: 其使用 ajpv13 協議與 Tomcat 進程通訊

    ?

    # Specify the size of the open connection cache.

    worker.tomcat1.cachesize= 1000

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

    #

    # Specifies the load balance factor when used with

    # a load balancing worker.

    # Note:

    #? ----> lbfactor must be > 0

    #? ----> Low lbfactor means less work done by the worker.

    worker.tomcat1.lbfactor= 100

    當此 Tomcat worker 被用于一個負載平衡 worker 使用時,此屬性將被使用。它定義了此 worker 的負載平衡權值。

    (2)?????? Second 3th tomcat server 配置跟 First tomcat server 類似,區別的地方:

    Second 3th worker.tomcat1.port 分別為: 8019 8029

    5 定義一個名為 “loadbalancer” worker ,其作為對多個 Tomcat 進程的負載平衡使用:

    worker.loadbalancer.type=lb

    worker.loadbalancer.balanced_workers=tomcat1, tomcat2, tomcat3

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

    1.2 ???????? 安裝Tomcatweb內容

    說明:為保障平臺的穩定運行,系統提供 3 tomcat (命名 webserver-1 webserver-2 webserver-3 )運行。

    1.2.1 ?????? 安裝

    ?? 1 )在 D:/ JIANGXI/ 下創建 webserver-1 文件夾。

    2 )將“ 5-WEB/1-Tomcat ”下的文件復制到 D:/ JIANGXI/webserver-1 。要求 Tomcat5.0 版本。

    1.2.2 ?????? 配置參數

    l???????? 打開文件“ ..\ 5-WEB\1-Tomcat\conf\server.xml

    l???????? 1 3 Tomcat server.xml 配置需要注意項目如下:

    A Change the control port 配置服務器監聽 shutdown 命令的端口 Port SHUTDOWN 3 Tomcat 分別為:

    <Server port="8035" shutdown="SHUTDOWN" debug="0">

    <Server port="8045" shutdown="SHUTDOWN" debug="0">

    <Server port="8055" shutdown="SHUTDOWN" debug="0">

    ?

    A、 定義 Tomcat 的標準獨立服務 Service 3 Tomcat 分別為:

    <Service name="tomcat1">

    <Service name="tomcat2">

    <Service name="tomcat3">

    ?

    C 、定義非 SSL HTTP/1.1 連接器 Connector

    ?<Connector?port="XXXX"
    ???????????????maxThreads="150"?minSpareThreads="25"?maxSpareThreads="75"
    ???????????????enableLookups="false"?redirectPort="8443"?acceptCount="100"
    ???????????????debug="0"?connectionTimeout="20000"?
    ???????????????disableUploadTimeout="true"?/>

    ? XXXX 對應 3 Tomcat 分別設置為 8060 8070 8080

    ?

    D Change the AJP13 port 定義 Coyote/JK2?AJP?1.3 連接器 Connector

    <Connector port=" XXXX"

    ?????????????? enableLookups="false" redirectPort="YYYY" debug="0"

    ?????????????? protocol="AJP/1.3" maxThreads="1100" minSpareThreads="25" maxSpareThreads="100"? acceptCount="0"/>

    YYYY 對應 3 Tomcat 分別設置為 8009 8019 8029

    YYYY 對應 3 Tomcat 分別設置為 8443 8453 8463

    ?

    E Add a unique jvmRoute to the Catalina engine 設置容器體系中最高級別的容器,各個 Tomcat B 項的設置對應, 3 Tomcat 分別為:

    <Engine name="Standalone" defaultHost="localhost" debug="0"> 替換為:

    <Engine jvmRoute="tomcat1" name="Standalone" defaultHost="localhost" debug="0">

    <Engine jvmRoute="tomcat2" name="Standalone" defaultHost="localhost" debug="0">

    <Engine jvmRoute="tomcat3" name="Standalone" defaultHost="localhost" debug="0">

    ?

    F 、設置用戶圖片、用戶上傳雜志圖片存放目錄。 3 Tomcat 配置相同:

    <Context path="/faceImage" docBase="D:\jiangxi\uploadimages\faceImage" debug="0" reloadable="false" crossContext="true">

    </Context>? ? ?

    <Context path="/magazineImage" docBase="D:\jiangxi\uploadimages\magazineImage" debug="0" reloadable="false" crossContext="true">

    </Context>?

    ?

    G 、此外需要的其他配置項有:

    監聽器: Listener

    全局 JNDI 資源: ?GlobalNamingResources

    全局日志設置,除非在更低的級別上覆蓋它的設置 ? Logger

    配置: Realm

    定義默認的虛擬主機 Host

    屏蔽: A 屏蔽 WARP connector

    ?????? B 、屏蔽 standalone HTTP port
    ??

    F server.xml 配置全文:

    <Server port="8035" shutdown="SHUTDOWN" debug="0">

    ? <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"

    ??????????? debug="0"/>

    ? <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"

    ????????? debug="0"/>

    ? <!-- Global JNDI resources -->

    ? <GlobalNamingResources>

    ??? <!-- Test entry for demonstration purposes -->

    ??? <Environment name="simpleValue" type="java.lang.Integer" value="30"/>

    ??? <!-- Editable user database that can also be used by

    ???????? UserDatabaseRealm to authenticate users -->

    ??? <Resource name="UserDatabase" auth="Container"

    ????????????? type="org.apache.catalina.UserDatabase"

    ?????? description="User database that can be updated and saved">

    ??? </Resource>

    ??? <ResourceParams name="UserDatabase">

    ????? <parameter>

    ??????? <name>factory</name>

    ??????? <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>

    ????? </parameter>

    ????? <parameter>

    ??????? <name>pathname</name>

    ??????? <value>conf/tomcat-users.xml</value>

    ????? </parameter>

    ??? </ResourceParams>

    ? </GlobalNamingResources>

    ? <!-- Define the Tomcat Stand-Alone Service -->

    ? <Service name="tomcat1">

    ??? <!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->

    ??? <Connector port="8080"

    ?????????????? maxThreads="800" minSpareThreads="25" maxSpareThreads="100"

    ?????????????? enableLookups="false" redirectPort="8443" acceptCount="0"

    ?????????????? debug="0" connectionTimeout="20000"

    ?????????????? disableUploadTimeout="true" />

    ?<!--Connector port="8443"??????????????

    ? maxThreads="150" minSpareThreads="25" maxSpareThreads="75"????????????? ?

    ? enableLookups="false" disableUploadTimeout="true"??????????????

    ? acceptCount="100" debug="0" scheme="https" secure="true"??????????????

    ? clientAuth="false" sslProtocol="TLS"???????????????

    ? keystoreFile="conf\.keystore"???????????????

    ? keystorePass="changeit" /-->

    ??? <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->

    ???? <Connector port="8009"

    ?????????????? enableLookups="false" redirectPort="8443" debug="0"

    ?????????????? protocol="AJP/1.3" maxThreads="1100" minSpareThreads="25" maxSpareThreads="100"? acceptCount="0"/>

    ??? <!-- You should set jvmRoute to support load-balancing via JK/JK2 ie :

    ??? <Engine name="Standalone" defaultHost="localhost" debug="0" jvmRoute="jvm1">????????

    ??? -->

    ??? <!-- Define the top level container in our container hierarchy -->

    ??? <Engine jvmRoute="tomcat1" name="Standalone" defaultHost="localhost" debug="0">

    ????? <!-- Global logger unless overridden at lower levels -->

    ????? <Logger className="org.apache.catalina.logger.FileLogger"

    ????????????? prefix="catalina_log." suffix=".txt"

    ????????????? timestamp="true"/>

    ????? <!-- This Realm uses the UserDatabase configured in the global JNDI

    ?????????? resources under the key "UserDatabase".? Any edits

    ?????????? that are performed against this UserDatabase are immediately

    ?????????? available for use by the Realm.? -->

    ????? <Realm className="org.apache.catalina.realm.UserDatabaseRealm"

    ???????????????? debug="0" resourceName="UserDatabase"/>

    ????? <!-- Define the default virtual host

    ?????????? Note: XML Schema validation will not work with Xerces 2.2.

    ?????? -->

    ????? <Host name="localhost" debug="0" appBase="webapps"

    ?????? unpackWARs="true" autoDeploy="true"

    ?????? xmlValidation="false" xmlNamespaceAware="false">

    ?????? <!-- <Logger className="org.apache.catalina.logger.FileLogger"

    ???????????????? directory="logs"? prefix="localhost_log." suffix=".txt"

    ??????????? timestamp="true"/>? -->

    ????? <Context path="/faceImage" docBase="D:\jiangxi\uploadimages\faceImage" debug="0" reloadable="false" crossContext="true">

    ????? </Context>? ???? ?

    ?????? ?? <Context path="/magazineImage" docBase="D:\jiangxi\uploadimages\magazineImage" debug="0" reloadable="false" crossContext="true">

    ????? </Context>?

    ????? </Host>

    ??? </Engine>

    ? </Service>

    </Server>

    ???????????????在網上找了一些文檔,還是覺得不是很清楚,自己走了些彎路,才把這個配置好,還是寫下來吧,以備后查。

    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, 將:

    改為

    XXXX " shutdown="SHUTDOWN">

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

    ?

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

    2.2.2. ??? 配置 service

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

    改為:

    XXXX ">

    兩個 service 分別為 tomcat6 tomcat5

    2.2.3. ??? 配置 Connector

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

    修改 ajp1.3 的端口:

    找到:

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

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

    修改 http 的端口:

    找到:

    ?????????????? maxThreads="150" connectionTimeout="20000"

    ?????????????? redirectPort="8443" />

    改為:

    XXXX " protocol="HTTP/1.1"

    ?????????????? maxThreads="150" connectionTimeout="20000"

    ?????????????? redirectPort="8443" />

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

    2.2.4. ??? 配置 Engine

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

    改為:

    兩個實例分別為: tomcat6 tomcat5.

    2.2.5. ??? 配置公用性 Context

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

    Host 中增加:

    2.2.6. ??? 屏蔽文件列表

    打開 tomcat 目錄下的 conf/web.xml

    找到:

    ??????? default

    ??????? org.apache.catalina.servlets.DefaultServlet

    ???????

    ??????????? debug

    ??????????? 0

    ???????

    ???????

    ??????????? listings

    ??????????? true

    ???????

    ??????? 1

    ???

    listings 參數改為 false;

    2.3. 配置應用 (web.xml)

    對系統應用做些控制。

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

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

    ??? 5

    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. ??? 配置虛擬主機

    ??? 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

    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-04-05 17:50 Peter Pan 閱讀(2505) 評論(1)  編輯  收藏 所屬分類: J2EE

    評論

    # re: apache+tomcat配置負載均衡 2008-01-18 15:20 famsky
    6~~~ok!  回復  更多評論
      

    主站蜘蛛池模板: 女人让男人免费桶爽30分钟| 美女隐私免费视频看| 亚洲视频.com| 亚洲av无码国产精品色午夜字幕| 国产亚洲欧洲Aⅴ综合一区| mm1313亚洲精品国产| 全黄a免费一级毛片人人爱| 免费观看午夜在线欧差毛片| 国产美女精品视频免费观看| 国产在线ts人妖免费视频| 国产乱弄免费视频| 亚洲 国产 图片| 4338×亚洲全国最大色成网站| 亚洲成A∨人片天堂网无码| 亚洲精品黄色视频在线观看免费资源| 亚洲A∨精品一区二区三区| 亚洲欧洲精品成人久久曰影片| 亚洲国产精品成人久久蜜臀| 亚洲精品动漫人成3d在线| 亚洲精品无码久久久影院相关影片 | 亚洲日韩精品无码AV海量| 亚洲砖码砖专无区2023| 日本亚洲欧美色视频在线播放| 国产成人高清亚洲一区91| WWW国产成人免费观看视频| 99免费精品视频| 久久久99精品免费观看| 免费国产作爱视频网站| 日韩电影免费在线观看视频| 亚洲精品WWW久久久久久| 久久亚洲综合色一区二区三区| 久久精品国产亚洲av日韩| 67194在线午夜亚洲| 免费亚洲视频在线观看| 国产精品免费视频观看拍拍| 免费观看男人吊女人视频| 无码国产精品一区二区免费 | 中文字幕成人免费高清在线| 鲁大师在线影院免费观看| 在线观看免费宅男视频| 亚洲日韩涩涩成人午夜私人影院|