본문 바로가기

dev/WEB and WAS

(14)
tomcat appBase 수정 일반적으로 tomcat에 war파일을 올릴 때 "tomcat/webapps/" 디렉토리 밑에 "ROOT.war"을 올립니다. 그런데 "tomcat/webapps/" 디렉토리 말고 다른 디렉토리로 설정해야 경우 appBase를 수정해야 합니다. (나스를 사용하는 경우) appBase는 tomcat이 배포하는 웹 어플리케이션 루트 디렉토리 위치를 가리킵니다. "tomcat/conf/server.xml" 파일의 Host 태그 속성의 appBase를 수정하면 됩니다. 이렇게 수정하면 tomcat 내부의 webapps 디렉토리가 아닌 다른 디렉토리의 war 파일을 찾아서 배포합니다. 추가로 Host 태그 안에 추가하면 context path와 docBase도 수정할 수 있습니다. context path는 톰캣 위..
nginx tomcat session clustering nginx와 tomcat 세션 클러스터링 하는 방법은 간단합니다. 먼저 nginx.conf 파일을 수정합니다.  upstream에서 "ip_hash"는 로드밸런싱 방법 중의 하나로 클라이언트의 IP 주소를 해시하여 클라이언트는 항상 동일한 upstream 서버로 요청할 수 있도록 되어있습니다. 이를 통해 세션 일관성을 유지하고 클라이언트 연결을 특정 서버에 고정할 수 있습니다. weight는 tomcat의 부하를 설정하는 값으로 위의 nginx.conf 파일을 예로 들면 3번의 요청이 있으면 2번은 192.168.0.203:8080이 처리하고 1번은 192.168.0.203:8081이 처리합니다.  다음으로 tomcat의 server.xml 파일을 수정하는데 ..
tomcat catalina.out 날짜별 생성 운영 tomcat 서버 로그 설정을 안 해줘서 catalina.out 파일에 계속 로그가 쌓이면 나중에 로그 확인하거나 관리할 때 어려운 점이 있습니다. 그래서 catalina.out을 날짜별로 생성해서 관리해야 하는데 방법은 간단합니다. apache 웹 서버의 rotatelogs 파일을 사용하면 됩니다. tomcat의 catalina.sh 파일에서 touch "$CATALINA_OUT"과 >> "$CATALINA_OUT" 2>&1 "&" 부분을 주석 처리하고 "$CATALINA_OUT" 2>&1 "&" 밑에 2>&1 "&" | /usr/sbin/rotatelogs "$CATALINA_OUT"-%Y-%m-%d 86400 540 & 추가하면 catalina.out 파일이 날짜별로 로그가 쌓입니다. 그리고 ..
tomcat log encoding tomcat 로그 인코딩을 변경하려면 2개 파일을 수정해야 합니다. 먼저 bin/catalina.sh에서 catalina.out 파일에 로그 작성하는 부분에 Dfile.encoding="UTF-8" \ 인코딩 설정을 추가합니다. 다음으로 conf/logging.propertis의 인코딩이 EUC-KR에서 UTF-8로 수정합니다. 그리고 tomcat을 다시 실행해서 로그를 확인하면 한글이 정상적으로 보이는 것을 확인할 수 있습니다.
tomcat https 적용 tomcat서버에 https 적용하는 방법은 간단합니다. server.xml 파일에 다음과 같은 내용 추가하면 됩니다. ============================================================================ ============================================================================ 굵은 글씨로 표시된 부분만 작성하면 쉽게 https 적용할 수 있습니다. 참고로 jks 파일은 따로 발급받아야 합니다.
tomcat rwx 설정 운영 WAS 서버에서 파일을 읽기, 쓰기를 할 때 간혹 파일을 접근할 수 없다는 에러가 뜨는 경우가 있습니다. 개발할 때는 문제없었는데 막상 WAS 서버에서 실행할 때 에러가 발생하는데 이런 문제의 원인은 WAS의 rwx 설정이 잘못되었기 때문입니다. rwx 설정을 바꾸려면 tomcat의 bin 디렉터리 밑에 catalina.sh을 수정해야 합니다. umask를 사용자 목적에 맞게 수정하면 되는데 디렉터리-777 / 파일-666에서 umask 값을 빼면 해당 디렉터리 및 파일에 접근권한이 설정됩니다. 별 것 아닌거 같아도 막상 WAS에서 디렉터리나 파일을 새로 생성한다면 umask 설정 생각해야 할 거 같습니다.
pinpoint-agent 설치 pinpoint-agent를 설치하면 tomcat과 pinpoint를 연계할 수 있습니다. pinpoint-agent를 설치하기 위해 /home 디렉토리 밑에 pinpoint-agent 디렉토리를 생성하고 pinpoint-agent를 다운받습니다. 다운이 제대로 되었는지 확인하고 압축파일을 풉니다. 압축파일이 잘 풀렸는지 확인하고, pinpoint.config 파일을 수정합니다. pinpoint.config 파일에서 collector.ip를 tomcat 서버 ip로 수정하면 됩니다. pinpoint.config 파일 수정이 끝났으면 이제 tomcat의 catalina.sh 파일을 아래와 같이 수정해야 합니다. (그리고 저는 docker 환경에서 구동중이라 pinpoint-agent를 tomcat 컨테이너..
nginx 413 에러 nginx를 통해 파일을 업로드하는 경우 가끔씩 아래와 같은 에러가 발생하는 경우가 있습니다. 413 에러가 발생하는 이유는 클라이언트(브라우저)가 요청 사이즈가 서버에 정의한 사이즈보다 커서 발생한 것이기 때문입니다. (디폴트 사이즈는 1MB입니다.) 에러를 해결하려면 nginx.conf를 수정해야 하는데 다음과 같이 수정하면 됩니다. 18번째 라인에 "client_max_body_size 1G;"를 추가해서 최대 1GB 사이즈 파일을 업로드 할 수 있게 되었습니다.