비단 Tomcat 의 catalina.out 뿐만 아니라 모든 생성되는 로그파일에도 적용이 가능한부분입니다.

대부분의 개발에서는 log4j, logback등의 설정을 이용해서 일자별 파일로그를 쌓긴 합니다만

이런 설정이 미적용된 시스템에서는 유용할듯 합니다.

 

linux의 /etc/logrotated.d/  디렉토리에 가면 시스템에서 관리하는 스케쥴러에 의해 로그를 관리하도록 설정이 가능합니다.

yum, syslog numad 같은 파일이 생성되어 있습니다.

이곳에 tomcat 로그용으로 하나 추가하도록 합니다. 설정은 아래것을 그대로 사용해도 무방할듯 합니다.

 

/]#cd /etc/logrotated.d

/]#cat > tomcat
 /data/was/tomcat8/logs/catalina.out{
  copytruncate
  daily
  rotate 30
  compress
  missingok
  notifempty
  delaycompress
  dateext
 }

(위에서 내용저장 후 빠져나오는 명령어는 Ctrl + d 입니다. 이후 수정은 vi로 해도 됩니다.)

 

잘 적용되는제 미리 테스트는 아래와 같이 합니다.

/]#logrotate -f /etc/logrotate.d/tomcat

아래와 같이 로그위치에 일자별 로그파일이 생성되어 있는지 확인합니다.

로그파일 생성결과

catalina.out.1 과 같은 형식으로 생성된 것은 dateext 옵션을 뺀 경우임.

 

그외 apache/logrotate를 활용하는 방법도 있는데, apache가 설치되어 있지 않아 위 방법을 적용.

 

 

 



COMODO SSL WebtoB 적용하기

Posted 2016. 12. 11. 00:42

갑작스럽게 WebtoB에 SSL을 적용하게 될 일이 발생했습니다.

이런거 익숙치 않아... 마음이 참 불편합니다.

Apache나 Tomcat 같은 경우 생각보다 간단하고, 구글링 자료도 많아 수월한데,

WebtoB같은 경우 특히 오래된 자료(현재버전 4.1 SP0)는 또 달라서 쉽지 않습니다.

기술지원을 받기엔 시간이 너무 늦어버렸고 내일은 주말입니다. ㅠ.ㅠ;;;

 

SSL 구매사이트 제공자료도 최신버전 기준으로, 또 싼게 비지떡이라고 했던가요... 자세히 설명도 않해줍니다.

 

1. SSL 구매사이트에서 보내온 인증서 목록입니다.

 

 

crt.pem, jks, key.pem, pfx 그리고 RootChain디텍토리의 파일들까지... ㅠ.ㅠ;;; 뭐가 이리 많을까?

 

2. 설정방법 구글링 들어갑니다. 예상대로 많지 않습니다.

  몇번의 실패를 극복하고 성공한 http.m 세팅은 아래와 같습니다.

 

*NODE
userWeb1
  WEBTOBDIR    = "/app/tmax/webtob",
  SHMKEY       = 54000,
  DOCROOT      = "/app/tmax/docRoot/userWeb/WebContent/",
  PORT         = "80,443",
  LOGGING      = "log1",
  ERRORLOG     = "log2",
  IPCPERM      = 0740,
  JSVPORT      = 9900,
  SERVICEORDER = "ext,uri",
  INDEXNAME    = "index.html,index.jsp",
  HTH          = 1 

 

*VHOST

was1          NODENAME=userWeb1,
                DOCROOT="/app/tmax/docRoot/userWeb",
                HOSTNAME="domain.com",
                SSLNAME="my_ssl",
                PORT="443",
                SSLFLAG=Y,
                ServiceOrder = "EXT,URI",
                LOGGING = "user_accesslog",
                ERRORLOG = "user_errorlog"

 

admin         NODENAME=userWeb1,
                DOCROOT="/app/tmax/docRoot/userAdmin",
                HOSTNAME="admin.domain.com",
                SSLNAME="my_ssl",
                PORT="443",
                SSLFLAG=Y,
                ServiceOrder = "EXT,URI",
                LOGGING = "admin_accesslog",
                ERRORLOG = "admin_errorlog" 

 

.... 중략....

 

*SSL
my_ssl
        CertificateFile = "/app/tmax/webtob/ssl/_wildcard_.domain.com_201xxxx.crt.pem",
        CertificateKeyFile = "/app/tmax/webtob/ssl/_wildcard_.domain.com_201xxxx.key.pem",
        CACertificateFile = "/app/tmax/webtob/ssl/AddTrustExtxxxCARoot.crt",
        CACertificatePath = "/app/tmax/webtob/ssl/Chain"

 

virtualhost형태로 구성되어 있던터라 위와같이 해 뒀다.

 

P.S. URLRewrite를 세팅하려고  했으나 WebtoB 버전이 너무 낮아서 그런지 tmax에서 제공하는 세팅을 인식하지 못하고 에러를 내뱉는다. ㅠ.ㅠ;;;

 

임시로 javascript로 처리하고 끝. ㅎㅎㅎ

 

 

 



운영을 하다보면, 또는 고객사의 정책이 변경되는 경우 기존 운영중인 apache를 추가적으로 연동해야 하는 경우가 있다.

 

아래는 일반적으로 고객용과 내부 관리자용 시스템을 구부하여 시스템 구성을 하는 경우이다.

 

 

 

 

대고객용은 WAS1, 2를 Clustering하여 로드밸런싱 형태로 아파치와 연동한다. 내부 관리자용은 아파치연동없이 WAS3만 서비스한다. 이에 대한 Apache와 Tomcat의 설정은 다음과 같다.

 

httpd.conf, httpd-ssl.conf는 일반적이니 생략하고 worker.properties만 보자

 

worker.list=loadbalancer
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=was1,was2

 

# WAS1 Worker
worker.was1.host={server_host or server ip}
worker.was1.port=8088
worker.was1.type=ajp13
worker.was1.lbfactor=1
worker.was1.fail_on_status=400,503


 

#Define WAS2 Worker
worker.was2.host={server_host or server ip}
worker.was2.port=8089
worker.was2.type=ajp13
worker.was2.lbfactor=1
worker.was2.fail_on_status=400,503


---------- uriworkermap.properties 설정 ----------

/*=loadbalancer

 

 

그런데 어느날 고객사에서 내부 관리자용 서비스도 apache를 연동해서 진행해달라고 한다.

또 보안지침이 강화가 되었으니 http로만 서비스하던것을 https로도 해달란다.

그래서 설정을 추가하기로 하는데...

 

1. WAS 용 SSL 인증서가 있냐고 문의 ==> 인증서는 Apache용만 있다고 한다.

 

그래서 아래와 같이 vHost를 이용하여 추가하기로 계획을 세웠다.

 

 

즉 기존 아파치에 도메인만 다르게 해서 세팅하는 방식. 즉 virtual host를 활용한 방법이다.

고객사에 관리자웹에서 사용할 sub-domain을 하나 달라고 했다.

고객사 담당자가 확인해 보더니 sub-domain을 추가로 만들수 없다고 한다. 에잉? 순간 난감.

기존 도메인을 그대로 쓰면서 포트만 다르게 해달라고 한다.

 

2. 사용자 Web과 관리자 Web이 같은 도메인을 사용하면서 포트만 다르게 사용하는 경우

 

 

 

할수 없이 위와같이 기존 아파치서버를 복사하여 관련설정만 바꿔서 세팅완료.

포트는 기존과 동일하게 사용하면서 프로토콜만 http에서  https로 변경.

 

이때의 workers.properties는 이전보다 간단해진다.

worker.list=was3
worker.was3.host={server_host or server ip}
worker.was3.port=9090
worker.was3.type=ajp13
worker.was3.fail_on_status=400,503

---------- uriworkermap.properties 설정 ----------
/*=was3