본문 바로가기

개발/네트워크

Apache 와 Tomcat 로드밸런싱(JVM Route)

 

1. conf/httpd.conf 설정

 

... 

LoadModule jk_module modules/mod_jk.so

<IfModule jk_module>
## work 목록
JkWorkersFile conf/workers.properties
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
## service로 설정된 서비스를 호출
JkMount /* service 
</IfModule>

...

 

2. conf/workers.properties 파일 생성

 

## httpd.conf 파일에 JKMount 부분의 이름과 맞추어야함.
## 현재는 service라고 명시했기 때문에 똑같이 service로 사용함.
worker.list=service

##-----------------
##Load Balance 설정
##-----------------

## 로드밸런싱 타입 Id로 구분
## worker. 다음에 붙는 service는 3번째 줄에 명시한 이름으로 통일
worker.service.type=Id
## server.xml 에서 jvmRoute 이름으로 사용할 예정
worker.service.balance_workers=service1,service2

## R[equest], S[ession], N[ext], T[raffic], B[usyness]
## worker.service.method=R
## Tomcat SessionID 가 동일한 경우 동일 서버 라우팅 여부
worker.service.method=S
worker.service.sticky_session=true

##-------------
##Service1 설정
##-------------
worker.service1.host= #첫번째 was 호스트
worker.service1.port= #첫번째 was 포트

## 부하 분산 가중치 설정
worker.service1.lbfactor=1 
## 연결 지속 메시지 발송 여부
##worker.service1.socket_keepalive=true
worker.service1.socket_timeout=300

##-------------
##Service2 설정
##-------------
worker.service2.host= #두번째 was 호스트
worker.service2.port= #두번째 was 포트

## 부하 분산 가중치 설정
worker.service2.lbfactor=1
## 연결 지속 메시지 발송 여부
##worker.service2.socket_keepalive=true
worker.service2.socket_timeout=300

 

 

3.  Tomcat SessionID 설정

 

- was#1 server.xml 파일 수정

## jvmRoute 부분은 workers.properties 파일에 설정한 이름이랑 맞춰야함
<Engine name="Catalina" defaultHost="localhost" jvmRoute="service1">
...
</Engine>

 

- was#2 server.xml 파일 수정

 

## jvmRoute 부분은 workers.properties 파일에 설정한 이름이랑 맞춰야함
<Engine name="Catalina" defaultHost="localhost" jvmRoute="service2">
...
</Engine>

'개발 > 네트워크' 카테고리의 다른 글

CentOS (Linux) JDK 환경변수 설정하기  (0) 2023.01.10