2015.05.28 20:10
1. Apache Tomcat Multi Instance
개발 환경 위한 개발, 스테이징, 상용 의 목적으로 웹서버를 구축할 시 해당 용도에 따른
물리적으로 분리된 환경을 구성하여 웹서비스 구동이 필요한 경우, 서로 다른 환경 변수 설정 및
분리된 디렉토리로 해당 인스턴스 별 구동 및 정지가 가능한 환경을 말합니다.
2. 설치 과정
Tomcat 과JAVA 설치는 FAQ 의 Tomcat 서버 구축 문서 등을 참조하시기 바랍니다.
본 문서에서는 java home=/usr/local/java, tomcat home=/usr/local/tomcat 이며,
버전의 경우 java version="1.8.0_45" apache-tomcat version ="8.0.23" 입니다.
3. 환경 변수 등록
vi /etc/profile 의 최하단에 아래와 같이 등록
JAVA_HOME=/usr/local/java
CATALINA_HOME=/usr/local/tomcat
Source /etc/profile 로 적용
4. apache tomcat 실행 유저 및 그룹 생성
groupadd webuser
useradd -g webuser -s /usr/sbin/nologin webuser
5. 인스턴스 별 디렉터리 및 환경 설정 디렉터리 생성
본 문서에는 /home/apache-tomcat/instance-01 과 같은 형식으로 지정하겠습니다.
[root@mail local]# cd /home/
[root@mail home]# mkdir -p /home/apache-tomcat/instance-01
[root@mail home]# mkdir -p /home/apache-tomcat/instance-01/bin
[root@mail home]# mkdir -p /home/apache-tomcat/instance-01/conf
[root@mail home]# mkdir -p /home/apache-tomcat/instance-01/logs
[root@mail home]# mkdir -p /home/apache-tomcat/instance-01/temp
[root@mail home]# mkdir -p /home/apache-tomcat/instance-01/webapps/ROOT
Apache Tomcat 의 conf 설정 파일을 새로 생성하는 Instance 폴더로 복사합니다.
[root@mail home]# cp /usr/local/tomcat/conf/* /home/apache-tomcat/instance-01/conf
Apache Tomcat Instance 의 conf/server.xml 파일 편집합니다.
[root@mail home]# vim /home/apache-tomcat/instance-01/conf/server.xml
(맨 좌측 숫자는 행 번호 입니다.)
22 <Server port="${tomcat.port.shutdown}" shutdown="SHUTDOWN">
69 <Connector port="${tomcat.port.http}" protocol="HTTP/1.1"
70 connectionTimeout="20000"
71 redirectPort="${tomcat.port.https}"
72 URIEncoding="UTF-8" />
92 <Connector port="${tomcat.port.ajp}" protocol="AJP/1.3" redirectPort="${tomcat.port.https}" URIEncoding="UTF-8" / >
6. 시작 스크립트를 생성 합니다.
[root@mail home]# vim /home/apache-tomcat/instance-01/bin/tomcat.sh
아래의 설정값을 다른 Instance 와 중복되지 않도록 설정한 후 저장합니다.
* SERVER_NAME : Apache Tomcat Instance 폴더명을 입력합니다.
* export JAVA_OPTS="$JAVA_OPTS -Dtomcat.port.shutdown=8505" #Shutdown Port
* export JAVA_OPTS="$JAVA_OPTS -Dtomcat.port.http=8580" #HTTP Port
* export JAVA_OPTS="$JAVA_OPTS -Dtomcat.port.https=8943" #HTTPS Port
* export JAVA_OPTS="$JAVA_OPTS -Dtomcat.port.ajp=8509" #AJP Port
* export CATALINA_HOME=/usr/local/tomcat 아파치톰캣의 설치 경로 입니다.
* export CATALINA_BASE=/home/apache-tomcat/$SERVER_NAME 인스턴스 경로 입니다.
#!/bin/bash
# chkconfig: 2345 95 20
# description: instance-01
# processname: instance-01
SERVER_NAME=instance-01
TOMCAT_USER=webuser
SHUTDOWN_WAIT=10
UNAME=`id -u -n`
export JAVA_OPTS="-server"
export JAVA_OPTS="$JAVA_OPTS -Xms256m"
export JAVA_OPTS="$JAVA_OPTS -Xmx256m"
export JAVA_OPTS="$JAVA_OPTS -XX:NewSize=128m"
export JAVA_OPTS="$JAVA_OPTS -XX:MaxNewSize=128m"
export JAVA_OPTS="$JAVA_OPTS -XX:PermSize=128m"
export JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=128m"
export JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC"
export JAVA_OPTS="$JAVA_OPTS -Dtomcat.port.shutdown=8505"
export JAVA_OPTS="$JAVA_OPTS -Dtomcat.port.http=8580"
export JAVA_OPTS="$JAVA_OPTS -Dtomcat.port.https=8943"
export JAVA_OPTS="$JAVA_OPTS -Dtomcat.port.ajp=8509"
export CATALINA_HOME=/opt/apache-tomcat
export CATALINA_BASE=/app/apache-tomcat/$SERVER_NAME
export CATALINA_OPTS="$CATALINA_OPTS -Djava.security.egd=file:/dev/./urandom"
tomcat_pid() {
echo `ps aux | grep "$CATALINA_BASE[ ]" | grep -v grep | awk '{ print $2 }'`
}
start() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Tomcat is already running (pid: $pid)"
else
echo "Starting tomcat (pid: $pid)"
if [ e$UNAME = "eroot" ]
then
ulimit -n 100000
umask 007
/bin/su -p -s /bin/sh $TOMCAT_USER $CATALINA_HOME/bin/startup.sh
else
$CATALINA_HOME/bin/startup.sh
fi
fi
return 0
}
stop() {
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Stoping Tomcat"
if [ e$UNAME = "eroot" ]
then
/bin/su -p -s /bin/sh $TOMCAT_USER $CATALINA_HOME/bin/shutdown.sh
else
$CATALINA_HOME/bin/shutdown.sh -force
fi
let kwait=$SHUTDOWN_WAIT
count=0;
until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]
do
echo -n -e "\nwaiting for processes to exit (pid: $pid)\n";
sleep 1
let count=$count+1;
done
if [ $count -gt $kwait ]; then
echo -n -e "\nkilling processes which didn't stop after $SHUTDOWN_WAIT seconds (pid: $pid)"
kill -9 $pid
fi
else
echo "Tomcat is not running"
fi
return 0
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
pid=$(tomcat_pid)
if [ -n "$pid" ]
then
echo "Tomcat is running with pid: $pid"
else
echo "Tomcat is not running"
fi
;;
*)
echo $"Usage : $0 {start|stop|restart}"
exit 1
esac
exit 0
실행 스크립트 권한 변경
[root@mail home]# chmod 755 apache-tomcat/instance-01/bin/tomcat.sh
인스턴스 사용자 권한 변경
[root@mail home]# chown -R webuser.webuser apache-tomcat/instance-01
간단한 jsp 문서를 만들어서 테스트 하여 봅니다.
[root@mail ROOT]# vim apache-tomcat/instance-01/webapps/ROOT/index.jsp
<%-- test.jsp --%>
<%@ page language="java" %>
<%!
int a= 100;
int b= 200;
%>
<%
int c= 0;
c=a+b;
%>
<html>
<head><title> JSP Test </title></head>
<body>
a= <%=a%><br>
b= <%=b%><br>
c= <%=c%>
</body>
</html>
http://서버IP:8580 으로 연결 되면 성공
아래와 같은 결과가 출력되면 정상 동작 중
a=100
b=200
c=300
포트 및 인스턴스 디렉터리 경로등에 유의하여 멀티 인스턴스를 생성하시면 되겠습니다.
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
23 | php.ini 옵션 중 short_open_tag | jook | 2009.02.12 | 27350 |
22 | Debian에서 apm 설치할때의 패키지 목록 | jook | 2008.12.27 | 20175 |
21 | Debian 에서 mod_rewrite 활성화 하기 | jook | 2008.12.12 | 19805 |
20 | ModSecurity 설치 해보기 | sylee | 2008.09.11 | 37907 |
19 | 보안을 위한 php.ini 설정 | HOSTWAY | 2008.07.31 | 26384 |
18 | 보안 서버 구축 - TOMCAT | 호스트웨이 | 2008.07.08 | 27540 |
17 | 아파치와 tomcat 연동 | 호스트웨이 | 2008.07.01 | 25718 |
16 | 웹 계정 추가 스크립트 | jook | 2008.07.01 | 27229 |
15 | 홈페이지 포워딩 하기 | jook | 2008.05.21 | 30779 |
14 | 웹접속 속도가 느려 졌을때 점검 해보기 | sylee | 2008.05.20 | 60768 |
13 | 아파치 가상 호스트 설정 해보기 | sylee | 2008.05.20 | 25831 |
12 | APM 설치 | 호스트웨이 | 2008.05.19 | 23789 |
11 | apache + resin 연동하여 설치하기 | 호스트웨이 | 2008.05.19 | 32941 |
10 | http://도메인/~계정으로 접근하기 | sylee | 2008.05.15 | 23080 |
9 | 업로드 디렉토리의 .php파일을 text처럼 인식하기 | sylee | 2008.05.15 | 24148 |
8 | 아파치 에러 코드 | sylee | 2008.05.15 | 30922 |
7 | ab 사용방법 | sylee | 2008.05.15 | 28901 |
6 | apache2.x - 보안서버 구축하기 | sylee | 2008.05.15 | 22986 |
5 | apache1.3 + mod_ssl - 보안서버 구축하기 | sylee | 2008.05.15 | 20082 |
4 | 아파치 환경설정 파일분석 1번째 | sylee | 2008.05.14 | 21377 |