꼬반 Blog

[NGINX] Reverse Proxy 설정 시 Nginx 에서 Error Page 설정

참고 : http://serverfault.com/questions/511109/nginx-local-fallback-error-page-if-proxy-destination-is-unavailable Nginx 에서 리버스 프록시 설정을 하여 사용할때 에러 페이지의 경우는 Nginx 설정이 아닌 프록시 서버의 설정을 따르게 된다. (Nginx - Tomcat 설정인 경우 Tomcat 에러 페이지가 노출) 이때 Nginx 에서 에러 페이지를 설정하기 위해서는 아래의 옵션을 함께 사용하면 된다. (Server 블록 내에서 사용) server { ... location / { proxy_intercept_errors on; proxy_pass http://localhost:8080/; } error_page..

Read More

[Tomcat] org.apache.catalina.AccessLog 옵션 수정

일반적으로 Tomcat을 사용하여 Virtual Host 설정을 하게되면 해당 Virtual Host 의 access log 를 Tomcat의 org.apache.catalina.AccessLog 를 사용하게 된다. 이때 기본 옵션의 상태로 저장되는 log 의 형태는 prefix + timestamp + suffix 형태가 된다. 이때 중간에 들어가는 timestamp 로 인해 일반적인 다른 로그 프레임워크와는 결과값이 다르게 된다. A : service.access.log / service.access.log-YYYYMMD(D-1) Tomcat default : service.access.YYYYMMDD.log / service.access.YYYYMMD(D-1).log 위와 같은 차이가 발생한다. 이..

Read More

[Tomcat] Data load time out 장애 조치

오늘 개발 중인 테스트 서버에서 장애가 접수되었다. 장애는 특정 데이터를 선택해서 그래프를 그려야 하는데 이 그래프를 그리기 위해서 서버쪽에서 response header 에 많은 chunked data 를 붙여서 응답한다. 근데 이 사이즈가 매우 커서 브라우저에서는 해당 data를 읽지 못하고 장애가 발생한 것. 하여 관련 옵션을 찾아 tomcat server.xml 에 추가 후 restart 하였다. compression="on"maxHttpHeaderSize="8192" 두개의 옵션을 에 추가하여 주었고 다시 확인해보니 그래프 기능이 정상으로 동작하였다.

Read More

[Java, Tomcat] SSL 인증서 적용시 이슈 발생 해결

회사에서 서비스하고 있는 웹 서비스에 대해서 새로 발급받은 SHA-2 기반의 SSL 인증서를 적용하는데 장애가 발생하였다. 확인하여 보니 기존 SHA-1 기반의 SSL 인증서도 마찬가지. https:// 443 포트로 접속하여 보면 브라우저에서 아래와 비슷한 메세지가 나오면서 접속이 되지 않는다. diffie-hellman 알고리즘이 발견되어 접근할 수 없습니다. 검색을 하여 보니 다음과 같은 해결방법을 찾을 수 있었다. 참조 : http://stackoverflow.com/questions/30931692/diffie-hellman-public-key-error-with-tomcat-7 즉 자바 1.6 ~ 1.7 버전에서 발생하는 문제라는 것. 이를 조치하기 위해서는 아래와 같은 옵션을 connecto..

Read More

[NGINX] Reverse Proxy 설정 시 Nginx 에서 Error Page 설정

참고 : http://serverfault.com/questions/511109/nginx-local-fallback-error-page-if-proxy-destination-is-unavailable


Nginx 에서 리버스 프록시 설정을 하여 사용할때 에러 페이지의 경우는 Nginx 설정이 아닌


프록시 서버의 설정을 따르게 된다. (Nginx - Tomcat 설정인 경우 Tomcat 에러 페이지가 노출)


이때 Nginx 에서 에러 페이지를 설정하기 위해서는 아래의 옵션을 함께 사용하면 된다.


(Server 블록 내에서 사용)



server {

...

  location / {

    proxy_intercept_errors on;

    proxy_pass http://localhost:8080/;

  }

  error_page 404 500 502 503 504 /custom_error.html;

  location = /custom_error.html {

    root /usr/share/nginx/html;

    internal;

  }

...

}

반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[Tomcat] org.apache.catalina.AccessLog 옵션 수정

일반적으로 Tomcat을 사용하여 Virtual Host 설정을 하게되면


해당 Virtual Host 의 access log 를 Tomcat의 org.apache.catalina.AccessLog 를 사용하게 된다.


이때 기본 옵션의 상태로 저장되는 log 의 형태는


prefix + timestamp + suffix 형태가 된다.


이때 중간에 들어가는 timestamp 로 인해 일반적인 다른 로그 프레임워크와는 결과값이 다르게 된다.


A : service.access.log / service.access.log-YYYYMMD(D-1)


Tomcat default : service.access.YYYYMMDD.log / service.access.YYYYMMD(D-1).log


위와 같은 차이가 발생한다.


이 부분에 있어 A와 같은 형식으로 로그를 저장하는 방식으로 변경하는 방법은 아래와 같다.


참조 : http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html



<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="service.access" suffix=".log" renameOnRotate="true"
               pattern='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-agent}i" "%v" %T' />


중간에 renameOnRotate 옵션을 true 로 설정하고 톰캣을 재시동하게 되면


A와 같은 타입으로 로그가 저장되게 된다.


여기서 A와 같은 타입으로 변경하는 이유는 다음과 같다.


오픈소스 로스 수집기를 활용하여 웹 서버의 로그를 수집하여 모니터링 솔루션을 구축하는데


다음과 같은 문제를 발견하였다.


logstash, telegraf 에 수집할 log file 형식을 지정해주는데 Tomcat 처럼 현재 날짜를 포함하는


로그를 위해 로그패턴을 날짜를 포함하거나 혹은 **.log 와 같이 해당 디렉토리내 전체 파일에 대해


수집 설정을 해준다. 그러나 날짜가 변경되어 새로 생성되는 로그 파일의 경우 에이전트가 재시작되어야만


새로 생성되는 로그파일을 정상적으로 추적하게 되는 문제가 발생한다.


따라서 access log 파일을 단일로 고정시키면 위와같은 문제 없이 수집을 정상적으로 할 수 있다.





반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[Tomcat] Data load time out 장애 조치

오늘 개발 중인 테스트 서버에서 장애가 접수되었다.


장애는 특정 데이터를 선택해서 그래프를 그려야 하는데 이 그래프를 그리기 위해서


서버쪽에서 response header 에 많은 chunked data 를 붙여서 응답한다.


근데 이 사이즈가 매우 커서 브라우저에서는 해당 data를 읽지 못하고 장애가 발생한 것.


하여 관련 옵션을 찾아 tomcat server.xml 에 추가 후 restart 하였다.


compression="on"

maxHttpHeaderSize="8192"


두개의 옵션을 <connector.../>


에 추가하여 주었고 다시 확인해보니 그래프 기능이 정상으로 동작하였다.



반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post

[Java, Tomcat] SSL 인증서 적용시 이슈 발생 해결

회사에서 서비스하고 있는 웹 서비스에 대해서 새로 발급받은 SHA-2 기반의 SSL 인증서를 적용하는데 장애가 발생하였다.


확인하여 보니 기존 SHA-1 기반의 SSL 인증서도 마찬가지.


https:// 443 포트로 접속하여 보면


브라우저에서 아래와 비슷한 메세지가 나오면서 접속이 되지 않는다.


diffie-hellman 알고리즘이 발견되어 접근할 수 없습니다.


검색을 하여 보니 다음과 같은 해결방법을 찾을 수 있었다.


참조 : http://stackoverflow.com/questions/30931692/diffie-hellman-public-key-error-with-tomcat-7


즉 자바 1.6 ~ 1.7 버전에서 발생하는 문제라는 것. 이를 조치하기 위해서는 아래와 같은 옵션을 connector 안에 넣어준다.


ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA"


그러면 정상적으로 웹 페이지가 노출됨을 확인할 수 있다.

반응형

Article By 꼬반

*certificate* : VCP 5(2012), RHCSA 7 (2014), RHCE 7 (2015), RHCSA in REDHAT OpenStack(2017) *development language* : Javascript, NodeJS, Golang, html5, css3, shell script *middle ware* : NGINX, Apache, Tomcat, Docker, Docker Swarm, Mesos, Kubernetes, HCI,

Discuss about post