일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mysql
- map api v3
- 아이폰키보드
- checkbox 값처리
- multipart
- group by max
- 서브쿼리
- String[]
- TM128
- 접속ip
- partition by
- 2개 테이블
- ajax 동기방식처리
- String 배열
- 첫주 및 마지막주 날짜 전체 포함
- mysql trigger
- extundelete
- 폐업자에 대한 업종등의 정보내역
- Oracle
- 한국소프트웨어산업협회
- 주소 좌표변환
- 컴퓨터 드라이버
- ajax async
- jquery selectbox change
- KOSA
- ant path pattern
- remote ip
- eclipse hotdeploy
- update
- http https
- Today
- Total
하은양 믿음군 효실맘 호홍홍집s
Centos Tomcat 설치하기 본문
참고 : http://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%ED%86%B0%EC%BA%A37_%EC%84%A4%EC%B9%98
1. 사전 작업 : 리눅스 JDK 설치되어 있어야한다.
2. 다운로드 및 설치
wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-7/v7.0.69/bin/apache-tomcat-7.0.69.tar.gz
tar xzf apache-tomcat-7.0.69.tar.gz
mv apache-tomcat-7.0.69 /usr/local/tomcat7
만약 wget으로 다운로드할 수 없다면 http://apache.mirror.cdnetworks.com/tomcat/tomcat-7 에 다른 버전이 있는지 확인해보자..
3. (참고)서비스 구성(추가구성)
/etc/init.d/tomcat7 파일을 만들어 service로 등록한다.
wget http://zetawiki.com/ex/tomcat/%etc%init.d%tomcat7 -O /etc/init.d/tomcat7
chmod 755 /etc/init.d/tomcat7
4. 시작 및 확인
서비스 등록되었을 시 :
service tomcat7 start
그냥 가동시 :
/usr/local/tomcat7/bin/startup.sh
tomcat 포트 확인
netstat -anp | grep :8080
tomcat process 확인
ps -ef | grep tomcat
5. (참고) 방화벽 열기
위 문단에서 접속이 되었다면 이 문단은 넘어가시라. 실패시에만 참고.
iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT
service iptables save
service iptables restart
6. 튜닝...
(참고 : http://linuxism.tistory.com/236)
6-1. 인코딩설정
$ vi $CATALINA_HOME/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>
6-2. JVM heap 메모리 크기 변경
- $CATALINA_HOME/bin/catalina.sh 파일에 아래 내용을 추가한다.
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+DisableExplicitGC"
(*) JVM의 기본 heap 메모리 사이즈는 64MB 이므로 최소한 -server, -Xms, -Xmx 옵션은 설정해야 한다.
(*) JVM 옵션 목록: http://blogs.sun.com/watt/resource/jvm-options-list.html
※ CATALINA_OPTS="-server -Xms256M -Xmx384M" : 정말로 이옵션이 꼭 필요하지 않는이상 적용하지 말아야 합니다.
이 옵션은 힙사이즈를 늘려주는대신 GC 시간을 잡아먹기때문에 사용자수가 유독 많은 웹사이트의 경우 절대 추천하지 않습니다.
※ CATALINA_OPTS : 멀티로 톰캣을 운영시 사용되는 옵션도 있네요
(참조 : https://beyondj2ee.wordpress.com/2012/07/03/%EB%A9%80%ED%8B%B0-%ED%86%B0%EC%BA%A3-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EB%A1%9C-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0-multiple-tomcat-instances/)
export CATALINA_OPTS="-Denv=product -Denv.servername=instance1"
6-3. JRE 메모리 누수 처리
- Tomcat 6.0.26부터 메모리 누수를 탐지하는 기능이 추가되었다.
- $CATALINA_HOME/conf/server.xml 파일에서 아래 코드를 찾아 주석을 해제한다.
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
6-4. 스레드 풀(thread pool) 설정
- 클라이언트의 요청을 처리하는 스레드 수 설정. 기본 값은 200이며 그 이상의 요청이 있을 경우 "connection refused" 메시지를 리턴한다.
- $CATALINA_HOME/conf/server.xml 파일에서 <Connector />의 속성을 수정한다.
<Connector port="8080" address="localhost" maxThreads="250" maxHttpHeaderSize="8192" emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="8181" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />
- 만약 maxThreads 값이 최대 값인 750을 넘을 경우 두 대의 Tomcat을 이용해 클러스터링 구성을 하는 것이 좋다.
하나의 Tomcat에 maxThreads=1000을 설정하지 말고 두 개의 Tomcat에 각각 maxThreads=500 설정을 하라는 뜻이다.
7. catalina.sh의 JAVA_HOME, JRE_HOME .. 설정
7-1. 별도의 jdk 이용시 :
JAVA_HOME=/usr/lib/jvm/jdk1.7.0_80
7-2. 클래스 파일 (Class File)을 컴파일한 JDK보다 톰캣 JRE 버전이 낮아서 발생한 문제 : 톰캣 JRE를 어떻게 변경할까?
사용하는 java 파일을 찾아보면 setclasspath.sh 파일 내에 다음과 같이 설정되어 있다.
_RUNJAVA="$JRE_HOME"/bin/java
startup.sh 파일 실행 시에 다음과 같은 메시지를 볼 수 있다.
Using JRE_HOME: /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
위 값이 현재 설정된 JRE_HOME으로
만약에 java의 위치가 /usr/bin/java라면
catalina.sh에서 setclasspath.sh를 실행하기 전에 다음을 추가해주면 된다.
JRE_HOME=/usr
'가벼운 배움 > 서버관련' 카테고리의 다른 글
linux User 생성 및 그룹 생성 (0) | 2016.05.02 |
---|---|
CentOs apache + Tomcat 연동하기 (0) | 2016.04.26 |
Centos 아파치 설치하기 (0) | 2016.04.26 |
Linux df명령, du명령 (0) | 2016.04.07 |
아파치 (13)Permission denied: make_sock: could not bind to address [::]:444 (0) | 2015.12.17 |