CentOS-6.4-minimal版中Apache-2.2.29與Tomcat-6.0.41實現負載平衡

來源:互聯網
上載者:User

標籤:apache   tomcat   jk   叢集   負載平衡   

/** * CentOS-6.4-minimal版中Apache-2.2.29與Tomcat-6.0.41實現負載平衡 * ---------------------------------------------------------------------------------------------------------------------- * 關於負載平衡(Load Balancer)與叢集(Cluster)的區別,以及配置方式的不同,稍後更新 * ---------------------------------------------------------------------------------------------------------------------- * 配置負載平衡 * 本文建立在Apache-2.2.29與Tomcat-6.0.41整合的基礎上,整合過程詳見http://blog.csdn.net/jadyer/article/details/39613523 * 1)修改連接埠(由於我是在一台機器上複製多個tomcat,所以需要修改連接埠,如果是不同的機器就可以跳過這一步) *   [[email protected] app]# vi tomcat/conf/server.xml  (修改8005為-1,原因詳見http://blog.csdn.net/jadyer/article/details/39613771) *   [[email protected] app]# cp -r tomcat tomcat1 *   [[email protected] app]# cp -r tomcat tomcat2 *   [[email protected] app]# cp -r tomcat tomcat3 *   [[email protected] app]# vi tomcat1/conf/server.xml (修改ssl連接埠對ajp連接埠為8543和8109,即分別+100) *   [[email protected] app]# vi tomcat2/conf/server.xml (修改ssl連接埠對ajp連接埠為8643和8209,即分別+100) *   [[email protected] app]# vi tomcat3/conf/server.xml (修改ssl連接埠對ajp連接埠為8743和8309,即分別+100) * 2)修改/app/apache/conf/workers.properties,修改後的內容如下 *   worker.list=status,tomcatlb *   worker.status.type=status *   worker.tomcat1.port=8109 *   worker.tomcat1.host=127.0.0.1 *   worker.tomcat1.type=ajp13 *   worker.tomcat1.lbfactor=1 *   worker.tomcat1.connection_pool_timeout=750 *   worker.tomcat1.socket_timeout=300000 *   worker.tomcat1.connect_timeout=10000 *   worker.tomcat1.reply_timeout=330000 *   worker.tomcat2.port=8209 *   worker.tomcat2.host=127.0.0.1 *   worker.tomcat2.type=ajp13 *   worker.tomcat2.lbfactor=1 *   worker.tomcat2.connection_pool_timeout=750 *   worker.tomcat2.socket_timeout=300000 *   worker.tomcat2.connect_timeout=10000 *   worker.tomcat2.reply_timeout=330000 *   worker.tomcat3.port=8309 *   worker.tomcat3.host=127.0.0.1 *   worker.tomcat3.type=ajp13 *   worker.tomcat3.lbfactor=1                                 #負載權重,值越高,被分發請求的機率越大 *   worker.tomcat3.connection_pool_timeout=750                #在串連池中維護的非活動串連,持續多少秒後被釋放,其預設值為0,即不釋放 *   worker.tomcat3.socket_timeout=300000                      #JK與Web伺服器連線逾時的秒數,超出此秒數將產生一個錯誤並再次重試,其預設值為0,即JK會一直等下去 *   worker.tomcat3.connect_timeout=10000                      #發送請求後,直到擷取到應答期間的延遲毫秒數,其預設值為0,即一直等 *   worker.tomcatlb.type=lb                                   #可選值ajp13,ajp14,jni,lb or status *   worker.retries=6                                          #通迅失敗的的重式次數,預設為2 *   worker.tomcatlb.balanced_workers=tomcat1,tomcat2,tomcat3  #參與負載平衡的Web伺服器 *   worker.tomcatlb.sticky_session=1 * 3)修改/app/apache/conf/extra/httpd-vhosts.conf *   將預設的tomcat改為tomcatlb,即指定所有請求交由tomcatlb處理 * ---------------------------------------------------------------------------------------------------------------------- * 測試負載平衡 * 1)啟動apache和三個tomcat後,就可以通過jkstatus看到參與負載平衡的3個tomcat以及其它參數,我們也可以通過jkstatus修改負載平衡參數 *   關於jkstatus的配置和使用,詳見http://blog.csdn.net/jadyer/article/details/39613553 * 2)接下來測試一下負載平衡訪問,測試代碼已在下方貼出 *   訪問頁面我們會發現,每次重新整理頁面,通過後台日誌都可以看到請求是被隨機分配給3個tomcat的,說明負載平衡成功 *   並且,由於這裡並沒有配置叢集,故每次重新整理頁面時,頁面列印的SessionID都是變化的 * ---------------------------------------------------------------------------------------------------------------------- * 關於workers.properties的更多參數說明,可參考以下兩個網址 * http://tomcat.apache.org/connectors-doc/reference/workers.html * http://blog.csdn.net/chumeng411/article/details/7541767 * ---------------------------------------------------------------------------------------------------------------------- * @create Sep 27, 2014 6:29:49 PM * @author 玄玉<http://blog.csdn.net/jadyer> */


<%@ page language="java" pageEncoding="UTF-8"%><%System.out.println("本機地址:" + request.getLocalAddr() + ":" + request.getLocalPort());out.println("本機地址:" + request.getLocalAddr() + ":" + request.getLocalPort() + "<br>");%><%out.println("<br>Session ID : " + session.getId() + "<br>");session.setAttribute("myname", "session");String dataName = request.getParameter("dataName");if(null!=dataName && dataName.length()>0){String dataValue = request.getParameter("dataValue");session.setAttribute(dataName, dataValue);}out.print("<b>Session 列表</b><br>");java.util.Enumeration e = session.getAttributeNames();while(e.hasMoreElements()){String name = (String)e.nextElement();String value = session.getAttribute(name).toString();out.println( name + " = " + value+"<br>");}%><form action="demo.jsp" method="POST">屬性名稱:<input type=text size=20 name="dataName"><br>屬性值:<input type=text size=20 name="dataValue"><br><input type=submit></form>


CentOS-6.4-minimal版中Apache-2.2.29與Tomcat-6.0.41實現負載平衡

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.