Oracle/Web Tier

    OHS plugin debugging

    Mod_wl_ohs.so를 확인하면 WEBLOGIC ~ OHS는 default 플러그인 파일인 위의 so 파일을 사용중이다. 위의 대한 debugging 레벨 로그는 다음과 같이 설정 가능하다. 1. odl-text(ODL-Text) 모드 OraLogMode odl-text OraLogSeverity TRACE:16 (default는 WARNING:32) 2. apache 모드 OraLogMode apache LogLevel debug (보통은 Info 권장) ============================================================== 플러그인에 대한 debugging 처리 Debug는 다음과 같이 설정이 가능하다. - ON : 플러그인 정보 및 에러메시지 작성. WL..

    OHS proxy balancer를 통한 load balancing

    mod_proxy_balancer를 통해 WebLogic ~ OHS가 연동되어 있는 상황에서 WAS 인스턴스들에게 로드 밸런싱을 하고자 한다. 위의 결과로 기대할 수 있는 부분은 OHS가 처음에 session 값을 받은 서버에 sticky session처리가 되어, session이 이후로도 지속적으로 유지가 될 수 있다는 부분이다. 다만 지속적으로 같은 서버를 사용하게 되기 때문에, 로드 밸런싱의 효율이 떨어져 속도 저하가 일어날 수도 있다는 단점 또한 있다. ========================================================================================== => 현재 WebLogic 인스턴스 2개가 연동되어 있는 상황이다. ..

    OHS 성능 issue (EnableMMAP, EnableSendfile)

    OHS가 기반을 두고 있는 Apache의 경우, UNIX 환경에 최적화되어 있기 때문에, Windows와 같은 타 OS에서는 안정성/ 성능 부분에서 문제가 되는 것들이 있다. 이때, EnableMMAP, EnableSendfile 설정을 통해 일정 부분 해결할 수 있다. ## MMAP => Web Server에 접속 시 웹문서의 로딩 중 내부 문서인 파일을 memory mapping하는 옵션. UNIX 환경의 경우 Kernel 단에서 위 옵션을 사용하게 되면 성능이 올라가지만, Windows에서는 성능 개선을 하지 못하며, 오히려 mapping 시간으로 인해 속도가 저하되는 현상이 발생할 수 있다. OHS 12cR2 기준 Default는 ON이며, 해당 부분 주석을 해제하여 OFF로 설정할 수 있다. #..

    OHS manual

    OHS 12c 기준 Manual 디렉토리는 ${ENGINE_HOME}/ohs/manual에 위치한다. 이는 Local access to the HTTP Server Manual을 위해 존재한다. httpd.conf에서 다음 부분의 주석을 풀어주면 manual을 사용할 수 있게 된다. (default는 사용 x) Define ENABLE_MANUAL의 주석을 해제하고 URL에 다음과 같이 호출할 시 manual page가 호출된다. => {IP}:{PORT}/manual 해당 manual 페이지는 서비스 운영과 관계 없기 때문에, Define ENABLE_MANUAL이 주석 처리되어 있다면 Manual 디렉토리를 삭제해도 서비스에 영향이 없다.

    OHS mod_status

    httpd.conf에서 OHS가 다음과 같은 status_module을 사용중인 것을 확인할 수 있다. => 위 모듈을 읽지 않아도 OHS 기동에는 문제 없다. ## status module이란 => APACHE 기반에서 사용되는 모듈이며, 서버 관리자에게 서버의 상태를 보여주는 서비스를 제공한다. HTML 페이지로 현재 서버통계를 보여주며, 필요할 시 페이지를 자동으로 갱신할 수 있다. 다음의 모듈을 사용하고, httpd.conf에 다음과 같이 status_module에 대한 설정을 해준다. Server 정보의 경우, 관리자만 알 수 있게 설정하는 것이 필요하기 때문에, Require all denied 옵션을 같이 사용했고, server-status Handler를 사용하게 설정한다. 이후, {OHS..

    Iplanet HTTP header server 정보 제거

    curl -i 옵션을 사용 시 default 상태에서는 다음과 같이 Iplanet에 대한 HTTP header에 서버 정보가 나타난다. 위 서버 내용을 노출 시 공격에 취약해지는 약점을 가지고 있다. Iplanet에서는 다음과 같은 옵션으로 curl을 막을 수 있다. => ServerString="None" 추가해주는 곳은 해당 instance의 magnus.conf이다. 설정 이후 다시 curl을 날려보면 연결이 거부되는 것을 확인할 수 있다.

    Iplanet Document Root & Log Rotation

    1. Iplanet Document Root 설정 [일반 작업] > [구성 편집] > [서버 이름] 2. Iplanet의 Error Log, Access Log 설정 [일반 작업] > [로그 기본 설정 및 아카이브] 새로 만들기 생성하게 되면 위와 같이 설정을 할 수 있다. 각각 Access Log, Error Log에 대한 Event를 생성할 수 있으며, 시간 기준 및 간격 기준으로 rotation 설정이 가능해진다.

    OHS Access log에 ip 주소를 호스트명으로 변경

    OHS access log는 httpd.conf의 Log Format에 %h가 default로 설정되어 있기 때문에 IP 주소를 확인할 수 있다. 이를 Host name으로 변경하기 위해서는 httpd.conf에 HostnameLookups를 ON으로 설정해야 한다. => 위 설정은 default가 OFF로 되어있다. 서버를 느리게 하는 요인이 되기 때문에 권장값은 OFF이다. => HostnameLookups는 httpd.conf에 기술되어 있지 않기 때문에, 따로 ON을 하기 위해서는 작성해줘야 한다. => Apahce 1.3 이전에는 default 값이 OFF 였다. 이후 다시 access log를 확인하면 %h 옵션이 다르게 적용되는 것을 확인할 수 있다. host name 대신 gateway가 ..