tomcat+apach load balance
환경 및 버 전
환경: 호스트 --- windows 7 (로 컬 localhost);
주요 기능: JDK - 1.5.022 (설치 판);Tomcat 39 --- - 6.0.39 (설치 판);Tomcat 32 - 6.0.32 (설치 판) Apache - 2.2.25 (httpd - 2.2.25 - win 32 - x86 - no ssl. msi, 설치 판)
2. apache tomcat 설정 작업
1, 아파 치 - 2.2.25 버 전 은 이미 modjk 기능 이 므 로 번 거 로 운 worker. properties 파일 을 설정 할 필요 가 없습니다. 설정 과정 이 편리 합 니 다.
2 、 편집기 로 APACHE 열기HOME \ \ conf \ httpd. conf 파일, 다음 프 록 시 블록 (proxy) 을 찾 습 니 다.
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
3. 이 프 록 시 블록의 "\ #" 기 호 를 지우 고 아파 치 는 시작 하 는 과정 에서 상기 프 록 시 (proxy) 를 불 러 옵 니 다.
4. 파일 끝 에 다음 코드 를 추가 합 니 다.
ProxyRequests Off
BalancerMember ajp://localhost:8009 loadfactor=1 route=jvm1
BalancerMember ajp://localhost:9009 loadfactor=1 route=jvm2
5. \ # Include conf / extra / httpd - vhosts. conf 위 치 를 찾 고 '\ #' 기 호 를 제거 합 니 다.
6 、 편집기 로 APACHE 열기HOME \ \ conf \ extra \ httpd - vhosts. conf 파일, 가상 사이트 설정, 파일 끝 에 추가
ServerAdmin [email protected]
ServerName localhost
ServerAlias localhost
ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
ErrorLog "logs/error.log"
CustomLog "logs/access.log" common
7. Tomcat - server. xml 파일 설정
7.1. 만약 에 2 개의 Tomcat 가 서로 다른 기계 에 있 으 면 그 어떠한 포트 도 수정 할 필요 가 없다.다만 < Engine name = "Catalina" defaultHost = "localhost" jvmRoute = "jvm 1" > 주석 부 호 를 놓 고 < Engine name = "Catalina" defaultHost = "localhost" > 주석 을 놓 아야 합 니 다.
7.2. tomcat 가 같은 기기 에 있 는 경우 tomcat 39 의 < Engine name = "Catalina" defaultHost = "localhost" jvmRoute = "jvm 1" > 을 < Engine name = "Catalina" defaultHost = "localhost" jvmRoute = "jvm 2" 로 변경 합 니 다.
7.3 tomcat 39 의 < Server port = "8005" shutdown = "SHUTDOWN" >
8005 는 9005, 8009 는 9009, 8080 은 9080 으로 바 뀌 었 다.
9009 포트 는 아파 치 httpd. conf 에서 BalancerMember 에 설 정 된 ajp 연결 포트 에 대응 합 니 다.
7.4. < Cluster className = "org. apache. catalina. ha. tcp. Simple TcpCluster" / > 의 설명 을 놓 습 니 다. 클 러 스 터 의 모든 tomcat 노드 간 에 세 션 (Session) 을 공유 할 수 있 도록 하기 위해 서 입 니 다.
3. 새로운 테스트 웹 프로젝트
1. 네트워크 의 테스트 session 의 예 를 참조 합 니 다.
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
out.println("<br> ID " + session.getId()+"<br>");
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}
out.print("<b>Session </b>");
Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println( name + " = " + value+"<br>");
System.out.println( name + " = " + value);
}
%>
<form action="test.jsp" method="POST">
:<input type=text size=20 name="dataName">
<br>
:<input type=text size=20 name="dataValue">
<br>
<input type=submit>
</form>
</body>
</html>
2. my eclipse new 웹 프로젝트 는 WebRoot 아래 test. jsp 를 새로 만 듭 니 다. 내용 은 위의 코드 입 니 다. WebRoot \ WEB - INF \ 웹. xml 의 < 웹 - app > 노드 에 < distributable / > 를 추가 하여 Tomcat 에 현재 응용 클 러 스 터 의 모든 노드 간 에 Session 공 유 를 실현 하 라 고 알 립 니 다.
3. 두 개의 TOMCAT 에서HOME \ \ conf \ server. xml 의 < Host > < / Host > 사이 에 < Context 추가 path="/test" docBase="D:\workspace\testLoadBlance\WebRoot" reloadable="true" debug="0">
4. 테스트 load balance
1. tomcat 39, tomcat 32, apache 를 시작 하여 브 라 우 저 에 입력 합 니 다.http://localhost/test/test.jspapache 를 새로 고 칠 때마다 다른 tomcat 에 요청 을 보 냅 니 다.
2. jvm 1 에서 이름과 값 을 제출 한 후 jvm 2 로 갱신 하면 jvm 1 이 제출 한 값 을 볼 수 있 고 반대로 load balance 를 설명 하 며 session 을 공유 하 는 목적 을 달성 할 수 있 습 니 다.
5. 존재 하 는 문제
1, tomcat 7 사용 시 session 을 공유 할 수 없습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.