Ubuntu에서 3개의 노드로 Apache Tomcat 클러스터를 설정하는 방법
이 기사에서는 Apache Tomcat 서버 클러스터를 설정하는 방법을 살펴봅니다. 우리는 3개의 Ubuntu 18.04 EC2 인스턴스 또는 VM을 사용할 것입니다. 여기서는 EC2 인스턴스를 사용했습니다. Apache Tomcat에는 Java가 필요하므로 Java를 설치하는 단계도 볼 것입니다.
다음은 내 클러스터의 세부 정보입니다.
클러스터 세부정보:
- Node1: 기본 디렉토리=/root/tomcat1, IP=172.31.35.11
- Node2: 기본 디렉토리=/root/tomcat2, IP=172.31.39.120
- Node3: 기본 디렉터리=/root/tomcat3, IP=172.31.32.185
전제 조건
- AWS 계정(계정이 없고 EC2 인스턴스에 클러스터를 생성하려는 경우 생성)(선택 사항).
- EC2 인스턴스 3개(EC2 인스턴스 생성 방법을 알아보려면 여기를 클릭) 또는 Ubuntu 18.04 LTS가 설치된 VM 3개.
- 서버에 대한 루트 액세스.
우리가 할 일
- Apache Tomcat 다운로드
- Java8 설치
- Apache Tomcat 클러스터 구성
- Apache Tomcat 시작/중지
아파치 톰캣 다운로드
권한 오류를 방지하려면 \root\ 사용자로 변경하십시오. 그러나 프로덕션 환경에서 \root\ 사용자를 사용하는 것은 권장되지 않습니다.
sudo -i
디렉터리를 만듭니다. 여기에 Apache Tomcat 패키지를 저장합니다.
mkdir tomcat1 #On Node2 mkdir tomcat2, On Node3 mkdir tomcat3
cd tomcat1/ #On Node2 cd tomcat2/, On Node3 cd tomcat3/
Apache-Tomcat-9.0.0.M17을 다운로드하고 추출하거나 여기에서 원하는 버전을 다운로드할 수 있습니다.
#각 노드에서
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.0.M17/bin/apache-tomcat-9.0.0.M17.tar.gz #다운로드< br>tar -zxvf apache-tomcat-9.0.0.M17.tar.gz #추출
자바 8 설치
#각 노드에서
sudo apt-get update #시스템 패키지 세부정보 업데이트
sudo apt install openjdk-8-jdk #Java 설치
java --version #Java 버전 확인
아파치 톰캣 구성
필요한 변경을 수행하기 전에 기본 server.xml 파일을 백업하십시오.
#각 노드에서
cd apache-tomcat-9.0.0.M17/ #디렉토리를 변경합니다.
cp conf/server.xml conf/server.xml.bak #기존 구성 파일을 백업합니다.
server.xml 파일에서 필요한 변경을 수행하십시오.
#각 노드에서
ifconfig #서버의 IP를 가져옵니다.
vim conf/server.xml #구성 파일을 열어 필요한 구성을 만듭니다.
다음 줄을 찾아 localhost를 노드의 IP로 변경합니다.
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps
클러스터를 설정하려면 다음 코드를 검색하십시오.
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
그리고 각 노드에 다음 코드를 추가하고 IP-Of-Node를 노드 자체의 IP로 바꿉니다.
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">
<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="IP-Of-Node"
port="5000" selectorTimeout="100" 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.MessageDispatchInterceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</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.ClusterSessionListener"/>
</Cluster>
Apache Tomcat 시작/중지
Apache Tomcat 시작
startup.sh 파일을 사용하여 Apache Tomcat 서비스를 시작합니다. netstat 명령을 사용하면 서비스가 기본 포트 8080에서 시작되었음을 확인할 수 있습니다.
#각 노드에서
bin/startup.sh #Apache Tomcat 서비스를 시작합니다.
netstat -tulpn #현재 시스템에서 사용 중인 포트를 확인합니다.
로그 확인
catalina.out에는 Apache Tomcat의 로그가 포함되어 있습니다. tail 명령을 사용하여 파일의 마지막 줄을 볼 수 있습니다.
tail -100f logs/catalina.out
Apache Tomcat 종료
Apache Tomcat 서비스는 shutdown.sh 파일을 사용하여 중지할 수 있습니다.
bin/shutdown.sh #Apache Tomcat 서비스를 중지합니다.
결론
이 기사에서는 3개의 노드가 있는 Apache Tomcat 클러스터를 생성하는 단계와 클러스터를 생성하기 위해 수행해야 하는 기본 구성을 살펴보았습니다.