일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 앱리소스
- MFA
- git
- OSX
- albumbook
- WebAuthn
- SSL
- 안드로이드
- 앨범북
- otpkey
- 인증
- MSYS2
- apple
- Xcode
- SWIFT
- fido
- OTP
- SwiftUI
- MYSQL
- 앱스토어
- css
- SSH
- openssl
- Nodejs
- appres
- 2FA
- Android
- FIDO2
- 애플
- kmip
- Today
- Total
인디노트
아파치2 톰캣7 로드밸런싱, 세션 클러스터링 설정하기 본문
======= 환경 =======
apt-get install apache2
wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-7/v7.0.56/bin/apache-tomcat-7.0.56.tar.gz
tar xvf apache-tomcat-7.0.56.tar.gz
a2enmod proxy_balancer proxy_http
a2enmod proxy proxy_balancer proxy_http status lbmethod_*
vi /etc/apache2/sites-available/default
service apache2 restart
톰캣 세션 클러스터링
각 톰캣에 세션이 공유되도록 클러스터링 설정을 해줌과 동시에
톰캣이 여러개 실행될 수 있도록 포트를 다르게 해준다.
상단에 설치한 경로로 이동
vi apache-tomcat-7.0.56/conf/server.xml
세션 클러스터링을 위한 설정을 Cluster 주석 처리된 부분에 해당 내용 추가
하단 Receiver 부분의 포트는 각 톰캣마다 다르게 준다.
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4000(각 톰캣마다 다르게설정)"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener">
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener">
</Cluster>
vi apache-tomcat-7.0.56/webapps/ROOT/WEB-INF/web.xml
<distributable/>
cp -a apache-tomcat-7.0.56 tomcat7-1
cp -a apache-tomcat-7.0.56 tomcat7-2
cp -a apache-tomcat-7.0.56 tomcat7-3
cp -a apache-tomcat-7.0.56 tomcat7-4
각 톰캣에 포트가 설정되어있는데 4개를 동시에 띄우려면 포트가 충돌나면 안된다.
vi tomcat7-1/conf/server.xml
내용중에 아래 세곳의 포트번호를 각 톰캣마다 다르게 해준다.
Server port="8005"
Connector port="8080" protocol="HTTP/1.1"
Connector port="8009" protocol="AJP/1.3"
Server port="8006"
Connector port="8081" protocol="HTTP/1.1"
Connector port="8010" protocol="AJP/1.3"
...
설정 완료
성공되었는지 확인
톰캣 실행
./tomcat7-1/bin/startup.sh ./tomcat7-2/bin/startup.sh ./tomcat7-3/bin/startup.sh ./tomcat7-4/bin/startup.sh
각 톰캣에 index.jsp에 세션정보를 출력해본다.
tomcat1 = <%=session.getId()%> tomcat2 = <%=session.getId()%> tomcat3 = <%=session.getId()%> tomcat4 = <%=session.getId()%>
웹 브라우저에서 확인
http://localhost
새로고침 하면서 각 톰캣마다 값이 동일한지 확인한다.
출처: http://cellion.tistory.com/entry/아파치2-톰캣7-로드밸런싱-세션-클러스터링-설정하기 [공책]
'개발 플랫폼 및 언어' 카테고리의 다른 글
아파치 톰캣(apache tomcat) 을 jmx 로 monitoring 하기 (0) | 2018.11.24 |
---|---|
세션 클러스터링 (0) | 2018.11.24 |
톰캣 7 세션 클러스터링 (0) | 2018.11.24 |
httpd.service (0) | 2018.11.22 |
Java cacerts (0) | 2018.11.20 |