시스템 사용량이 많아 Tomcat 서버를 여러 대로 분할하려고 했으나 재정상 L4 스위치를 구비하기 어려운 경우가 발생하여 S/W적으로 이를 대체할 만한 방법을 찾다보니 Nginx라는 것이 이 역할을 한다는 것을 알고 직접 구성해보았다.
설치방법1
http://blog.naver.com/adventurez/193335400
설치방법2
http://opentutorials.org/module/384/4511
Test환경
서버가 한대 밖에 없을 경우
사용자 Browser1 -> nginx(80, 443) -> Tomcat1:8080
사용자 Browser1 -> nginx(80, 443) -> Tomcat2:8090
1. tomcat1/conf/sever.xml에 포트 8080으로 변경
2. tomcat2/conf/server.xml에 포트 8090으로 변경 및 각 포트 정보 아래와 같이 앞에 2를 붙임
- <Server port="28005" shutdown="SHUTDOWN">
- <Connector URIEncoding="UTF-8" port="28009" protocol="AJP/1.3" redirectPort="28443"/>
3. 같은 서버에 두 개의 Tomcat Instance를 실행할 경우 Session이 꼬이는 문제가 발생하므로 tomcat2/bin/catalina.sh에 아래와 같이 변경 필요
JAVA_OPTS="-Xms512M -Xmx1024M -Djava.awt.headless=true Dorg.apache.catalina.SESSION_COOKIE_NAME=MYSESSIONID -Dorg.apache.catalina.SESSION_PARAMETER_NAME=myjsessionid"
서버가 여러 대일 경우(서버A, 서버B, 서버C)
* 서버A에 nginx를 두고 나머지 서버B, C에 Tomcat설치 구성
* 서버A스펙이 좋을 경우에는 서버A에 nginx, Tomcat1를 두고 서버B, C에 각각 Tomcat2,3설치 구성도 가능
사용자 Browser1 -> nginx(80, 443) -> Tomcat1
사용자 Browser1 -> nginx(80, 443) -> Tomcat2
1. nginx1.6/conf/nginx.conf에 아래와 같이 수정 필요
upstream myapp1 {
ip_hash;
server tomcat1 ip;
server tomcat2 ip;
}
server {
listen tomcat1 ip:80;
location / {
proxy_pass http://myapp1;
}
}
나머진 알아서!
'웹어플리케이션서버' 카테고리의 다른 글
Tomcat7에서 세션 쿠키 네임 설정 (0) | 2015.10.29 |
---|---|
Tomcat 80, 443포트 Non-Root 계정으로 띄우기 (0) | 2015.06.23 |
[Tomcat7] Context [] startup failed due to previous errors (0) | 2013.06.24 |
tomcat 6.0.26 jdbc memory leak 해결법 (0) | 2013.05.10 |
OpenSSL을 이용한 Tomcat HTTPS 설정 - PKCS12 format (0) | 2012.10.14 |