출처 : http://blog.daum.net/gujjy/114


tomcat 으로 mysql 접속시 인코딩이 깨어질 때 체크해야 할 것들.


1. 데이타베이스 및 테이블 생성 시 인코딩 적용

  CREATE DATABASE 디비명 DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

  CREATE TABLE 테이블명(
    컬럼들~~~~
)ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='테이블 주석';


2. jdbc 데이터 소스 생성 시 인코딩 적용

  jdbc:mysql://서버주소:포트/디비명?useUnicod=true&characterEncoding=utf8


  &는 xml 에서는 &로 적어준다.


3. web.xml에 인코딩 필터 적용

<filter> 
<filter-name>encodingFilter</filter-name> 
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
<init-param> 
<param-name>encoding</param-name> 
<param-value>UTF-8</param-value> 
</init-param> 
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


4. Get 파라메터 한글 깨짐 적용

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="utf8" />


  URIEncoding을 적용하면 get으로 한글을 보낼때 깨지 않는다.





톰켓이 스레드가 부족할 경우 아래와 같은 메세지를 출력하고 다운될 때가 있다.


심각: All threads (200) are currently busy, waiting. Increase maxThreads (200) or check the servlet status


기본적인 maxThreads가 200이므로 늘려주면된다.


Tomcat폴더/conf/server.xml 파일에서 Connector 엘리먼트에서 변경 혹은 추가한다.


<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               maxThreads="400"
               redirectPort="8443" />


참고 : http://blog.naver.com/PostView.nhn?blogId=junix&logNo=80125225673

'IT분야 > Server' 카테고리의 다른 글

[Server]Tomcat max thread 변경  (0) 2013.12.13
[Server]Tomcat 메모리 변경  (0) 2013.12.13
[Tomcat]tomcat get 한글 깨짐  (0) 2013.12.10
[Tomcat]PermGen space  (0) 2012.11.04
Weblogic 메모리 PermGen space 에러.  (0) 2012.11.04
[Apache+PHP+MySQL] Windows 2003 Server APM 셋팅  (0) 2010.12.20

참조 : http://blog.naver.com/PostView.nhn?blogId=junix&logNo=80125225673

Tomcat 메모리 변경


 bin/catalina.sh 파일에 아래 내용을 맨 위쪽에 추가한다.


리눅스 :  JAVA_OPTS=$JAVA_OPTS -Xms512m -Xmx1024m -XX:PermSize=128m

윈도우 : set JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx1024m -XX:PermSize=128m


톰켓을 재시작한다.


'IT분야 > Server' 카테고리의 다른 글

[Server]Tomcat max thread 변경  (0) 2013.12.13
[Server]Tomcat 메모리 변경  (0) 2013.12.13
[Tomcat]tomcat get 한글 깨짐  (0) 2013.12.10
[Tomcat]PermGen space  (0) 2012.11.04
Weblogic 메모리 PermGen space 에러.  (0) 2012.11.04
[Apache+PHP+MySQL] Windows 2003 Server APM 셋팅  (0) 2010.12.20

참조 : http://devday.tistory.com/entry/%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-Eclipse%EC%97%90%EC%84%9C-%ED%86%B0%EC%BA%A3-Tomcat-%EC%82%AC%EC%9A%A9-%EC%8B%9C-%ED%95%9C%EA%B8%80-GET-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0%EA%B0%80-%EA%B9%A8%EC%A7%88-%EB%95%8C


톰켓 사용시 get 파라메터가 인코딩이 깨어질 때가 있다.

server.xml에 Connector에 옵션을 주면 된다.


아파치 등과 같이 WEB서버와 연동시에는 AJP 커넥터에도 URIEncoding을 달아준다.



<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="utf8" />




web.xml에 인코딩필터를 달아준다.

<filter> 
<filter-name>encodingFilter</filter-name> 
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
<init-param> 
<param-name>encoding</param-name> 
<param-value>UTF-8</param-value> 
</init-param> 
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


'IT분야 > Server' 카테고리의 다른 글

[Server]Tomcat max thread 변경  (0) 2013.12.13
[Server]Tomcat 메모리 변경  (0) 2013.12.13
[Tomcat]tomcat get 한글 깨짐  (0) 2013.12.10
[Tomcat]PermGen space  (0) 2012.11.04
Weblogic 메모리 PermGen space 에러.  (0) 2012.11.04
[Apache+PHP+MySQL] Windows 2003 Server APM 셋팅  (0) 2010.12.20

출처 : http://forums.eukhost.com/f33/tomcat-java-lang-outofmemoryerror-permgen-space-7675/#.UJVs8IboqQU

이클립스로 톰켓구동하여 사용하다 보면 PermGen space 에러가 날때가 있다.

메모리 사이즈를 조절해 준다. catalina.sh 파일을 수정한다.

1) vi /usr/local/jakarta/tomcat/bin/catalina.sh

2) Add following line into the catalina.sh file.

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"


출처 : http://blog.naver.com/prime768?Redirect=Log&logNo=50047432163


이클립스에서 Tomcat Server를 생성하려고 할때

Cannot create a server using the selected type 이 발생한다면
(기존에 사용하던 톰켓 서버 위치가 변경되었을 경우 이러한 에러가 난다고 함)


WorkSpace 안에 있는 다음의 경로를 찾아

( .metadata\.plugins\org.eclipse.core.runtime\.settings )



org.eclipse.wst.server.core.prefs

org.eclipse.jst.server.tomcat.core.prefs



2개 파일을 지워준다.



이클립스 재시작후 다시 추가 모드


리눅스 기반에서 톰켓을 셋팅하고 스프링 프레임웍을 이용하여 개발환경을 테스트하던중

PermGen space라는 메세지를 뿜으며 한번씩 톰켓이 죽었다.


메모리 문제..


JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms512m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"


위 와 같이 catalina.sh 에 추가해주었다.


** catalina.out 날짜별로 쌓기
cronolog를 설치해야 한다.
홈페이지는 http://cronolog.org/  에서 받아서 설치한다.
]# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
]# tar xvzf cronolog-1.6.2.tar.gz
]# cd cronolog-1.6.2
]# ./configure --prefix=/usr/local/cronolog
]# make
]# make install
]# /usr/local/cronolog/sbin/cronolog

설치후 다음 톰켓의 catalina.sh 를 편집한다.(%TOMCAT% 은 톰켓 설치 경로)
vi %TOMCAT%/bin/catalina.sh
...
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
...

부분을 아래와 같이 변경한다.(tomcat5.5기준으로 266번째 라인쯤 있다.또한 else 부분도 같이 변경해줘야 한다.)
...
org.apache.catalina.startup.Bootstrap "$@" \
start |/usr/local/cronolog/sbin/cronolog %TOMCAT%/logs/%Y-%m-%d.catalina.out >> /dev/null 2>&1 &
...

톰켓을 재구동한다.
]# shutdown.sh
]# startup.sh

첨 해봤던 서버셋팅.. 오래됐지만 문서로 남겨두기로 했다.

** 참조 링크
1. http://forum.falinux.com/zbxe/?mid=manual_centos 
 - 설치가 자세하게 잘 나와있다.
2. http://jmsource.tistory.com/33
 - SATA가 잡히지 않아 고생했다. 우분투는 설치가 잘 되던데.. CentOS는 설치화면에서 SATA DVD-ROM을 인식못해서
  한참을 헤매다가 찾았다. 이렇게 하면 설치는 된다.. 다만 리눅스 종료할때 자동으로 꺼지지 않는다. 수동으로 눌러줘야된다.
  뭐.. 서버 끌일은 크게 없으니

**  리눅스 설치
1. 리눅스 CentOS 5.3버전 DVD 한 장 버전으로 그래픽 모드로 설치
(SATA로 시디롬 인식 불능시 초기 설치시 linux all-generic-ide acpi=off irqpoll selinux_compat_net=1 치고 엔터)

2. 설치패키지 선택시 Desktop Gnome 를 체크 한다. 바로 밑부분에 지금 사용자 설정에 체크하고 다음.
   개발용 도구탭에서 필요한 부분 체크(DNS나 메일서버 SSH등) 하여 설치를 완료. 하드디스크 분할은 잘몰라서 패스했다

** Java JDK 1.5 설치
# 링크 : http://java.sun.com/products/archive/j2se/5.0_12/ 에서 JDK 5.0 Update 12를 다운로드클릭한다. 다음 페이지에서 Platform을 리눅스 Language를 Multi-language를 체크, I agree 체크 한 후 Continue하여 다음 페이지에서 나오는 두 개의 파일 중 rpm이 붙지 않은 파일을 다운로드
# 파일을 /usr/local/ 로 이동 시킨다.
# chmod 755 jdk-1_5_0_12-linux-i586.bin  하여 권한 수정.
# ./jdk-1_5_0_12-linux-i586.bin   실행하면 압축이 풀리면서 폴더가 생성된다.
# ln -s 생성된폴더명 java
심볼릭 링크를 걸어줌(classpath추가시 폴더이름이 길고 업데이트시 폴더이름이 바뀌면 수정해야 하므로 걸어줌)
# vi /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
환경변수를 추가한다. 추후 mysql커넥터 등 알아서 더 추가하시길.
# source /etc/profile 로 적용
# env 로 환경변수 확인

** Tomcat 설치
# 링크 : http://tomcat.apache.org/ 에서 Tomcat 5.5를 선택 Core에서 tar.gz버전을 다운받는다.
# tar zxvf 파일명.tar.gz 로 압축해제.
# mv 폴더명 /usr/local/tomcat5   로 이동시키면서 기존의 폴더명을 tomcat5로 변경
# 문서에 첨부된 tomcat파일을 /etc/rc.d/init.d/ 으로 이동 후 chmod 755 /etc/rc.d/init.d/tomcat 로 권한 변경
  첨부된 파일은 톰켓을 서비스에 등록시키기 위한 파일임.
# chkconfig --add tomcat 서비스로 등록한다.
# service tomcat start  서비스 시작.
--톰켓 콘솔창 출력을 위해서는 톰켓폴더/logs/ 폴더에서 tail -f catalina.out을 치면 된다.
--또한 톰캣폴더/common/lib 의 servlet-api.jar 파일 및 mysql커넥터를 jdk폴더/jre/lib/ext 에 복사.

** MySql 설치
# yum -y install mysql mysql-server mysql-connector-odbc mysql-devel
# mysql_install_db && chown -R mysql:mysql /var/lib/mysql     기본 mysql DB인스톨.소유권한 변경
# /etc/rc.d/init.d/mysqld start
# mysqladmin -u root password 123456      : 사용자와 패스워드 설정
# chkconfig --add mysqld  이하 서비스 등록
# chkconfig --level 2345 mysqld on
# chmod 755 /etc/rc.d/init.d/mysqld
# service mysqld restart
--추가적으로 mysql 인코딩셋을 euckr로 변경시
-- vi /etc/my.cnf에서
-------------------------------------------------
[client]
...
default-character-set = euckr

[mysqld]
...
default-character-set=euckr
init_connect = SET collation_connection = euckr_korean_ci
init_connect = SET NAMES euckr
charater-set-server = euckr
collation-server = euckr_korean_ci

[mysqldump]
...
default-character-set=euckr

[mysql]
default-character-set=euckr
----------------------------------------------------
-- euckr과 euckr_korean_ci 로 변경한다. 항목이 없을 시 utf로 된 것 모든 것 변경
-- 확인 mysql에 접속된 상태에서  show variables like 'c%' euckr 로 변경되어 있으면 완료.
  (character_set_system은 기본셋팅따라감. utf8)

** FTP(vsftpd) 설치
# rpm 검색하여 기존버전 설치되어 있을 경우 소프트웨어추가/삭제에서 제거 후 설치한다.
# wget http://pkg.tini4u.net/ftp/vsftpd/i386/vsftpd-2.0.5-10.el5_kor.i386.rpm 으로 다운
# rpm -ivh 파일명  으로 설치
# /etc/vsftpd/vsftpd.conf 로 모든  ftp설정 가능. 어느 개발자분이 기본적인 셋팅을 잘 해놓으셨다.
# /etc/init.d/vsftpd start  로 서비스 시작

** 방화벽
/etc/sysconfig/iptables 에서 방화벽 포트 설정
/sbin/service iptables restart 재시작
/sbin/service iptables status 적용현황보기

♦ IP설정 /etc/sysconfig/network-scripts

'IT분야 > Linux' 카테고리의 다른 글

[Linux]unison을 이용한 양방향 동기화  (0) 2010.10.29
[Linux] CentOS 5.3 Server 셋팅  (0) 2010.08.25

Apache와 Tomcat을 연동하기 위해서는 보통 mod_jk나 proxy_ajp 를 사용하는 두가지 방법이 있습니다.
회사에서는 mod_jk를 주로 사용합니다. 실제로 아직은 mod_jk 방법을 권장하고 있기는 합니다. 이유는 다양한 옵션이 있다는 것이죠. 하지만 mod_jk의 다양한 옵션을 사용해서 튜닝을 하는 경우가 아니라면 제가 볼때는 비슷합니다.

  1. Windows에서 mod_jk를 이용해서 Apache, Tomcat 연동하기 - Windows에서 mod_jk를 이용해서 Apache, Tomcat 연동하기
  2. Linux에서 mod_jk를 이용해서 Apache, Tomcat 연동하기 - Linux에서 mod_jk를 이용해서 Apache, Tomcat 연동하기
  3. Windows에서 proxy모듈을 이용해서 Apache, Tomcat 연동하기 - Windows에서 proxy모듈을 이용해서 Apache, Tomcat 연동하기
  4. Linux에서 proxy모듈을 이용해서 Apache, Tomcat 연동하기 - Linux에서 proxy모듈을 이용해서 Apache, Tomcat 연동하기


방법간에 차이가 크지 않지만 아무래도 방법과 OS간의 차이가 조금씩은 있어서 정리해둡니다.
mod_jk와 proxy_ajp방식의 성능차를 비교했던 자료가 있었는데 개인적인 실수로 지워져 버려 올리지 못하는건 아쉽네요. ^^

이동욱님 포스트에 있는 좋은 글이네요.


http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.30/i586/