24.10. Oracle NSAPI 커넥터

NSAPI(Netscape Server API)는 서버에 대한 확장을 구현하기 위해 이전에 Netscape Web Server인 Oracle iPlanet Web Server에서 제공하는 API입니다. 이러한 확장 프로그램을 서버 플러그인이라고 합니다. NSAPI 커넥터는 Oracle iPlanet Web Server에 맞게 조정된 mod _jk의 확장 기능인 nsapi_redirector.so 에 사용됩니다. NSAPI 커넥터를 사용하면 Oracle iPlanet Web Server를 로드 밸런서 장치로 사용하여 JBoss EAP 인스턴스를 작업자 노드로 구성할 수 있습니다.

참고

Solaris 및 Oracle iPlanet Web Server의 지원되는 구성에 대한 자세한 내용은 JBoss EAP 지원 구성을 참조하십시오.

24.10.1. NSAPI 커넥터를 사용하도록 Oracle iPlanet 웹 서버 구성

사전 요구 사항

  • JBoss EAP는 작업자 역할을 할 각 서버에 설치 및 구성됩니다.

Red Hat 고객 포털에서 NSAPI 커넥터를 다운로드합니다.

  1. 브라우저를 열고 Red Hat Customer Portal JBoss Software Downloads 페이지에 로그인합니다.
  2. Product(제품) 드롭다운 메뉴에서 Web Connectors (웹 커넥터)를 선택합니다.
  3. Version(버전) 드롭다운 메뉴에서 최신 JBoss Core Services 버전을 선택합니다.
  4. 목록에서 Red Hat JBoss Core Services NSAPI 커넥터 를 찾아 시스템에 맞는 올바른 플랫폼 및 아키텍처를 선택하고 다운로드 링크를 클릭합니다.
  5. lib/ 또는 lib64/ 디렉터리에 있는 nsapi_redirector.so 파일을 IPLANET_CONFIG/lib/ 또는 IPLANET_CONFIG/lib64/ 디렉터리에 추출합니다.

NSAPI 커넥터를 설정합니다.

참고

이 지침에서 IPLANET_CONFIG 는 일반적으로 /opt/oracle/webserver7/config/ 인 Oracle iPlanet 구성 디렉토리를 나타냅니다. Oracle iPlanet 구성 디렉터리가 다른 경우 그에 따라 지침을 수정합니다.

  1. 서블릿 매핑 비활성화.

    IPLANET_CONFIG/default.web.xml 파일을 열고 built In Server Mappings 라는 제목으로 섹션을 찾습니다. XML 주석 문자(<!-- 및¢)로 래핑하여 다음 세 개의 서블릿에 대한 매핑을 비활성화합니다 .

    • default
    • 호출자
    • jsp

      다음 예제 구성은 비활성화된 매핑을 보여줍니다.

      <!-- ============== Built In Servlet Mappings =============== -->
      <!-- The servlet mappings for the built in servlets defined above. -->
      <!-- The mapping for the default servlet -->
      <!--servlet-mapping>
       <servlet-name>default</servlet-name>
       <url-pattern>/</url-pattern>
      </servlet-mapping-->
      <!-- The mapping for the invoker servlet -->
      <!--servlet-mapping>
       <servlet-name>invoker</servlet-name>
       <url-pattern>/servlet/*</url-pattern>
      </servlet-mapping-->
      <!-- The mapping for the Jakarta Server Pages servlet -->
      <!--servlet-mapping>
       <servlet-name>jsp</servlet-name>
       <url-pattern>*.jsp</url-pattern>
      </servlet-mapping-->

      파일을 저장하고 종료합니다.

  2. NSAPI 커넥터 모듈을 로드하도록 iPlanet 웹 서버를 구성합니다.

    IPLANET_CONFIG/magnus.conf 파일의 끝에 다음 행을 추가하고 구성에 맞게 파일 경로를 수정합니다. 이러한 행은 nsapi_redirector.so 모듈의 위치와 작업자와 해당 속성을 나열하는 workers.properties 파일의 위치를 정의합니다.

    Init fn="load-modules" funcs="jk_init,jk_service" shlib="/lib/nsapi_redirector.so" shlib_flags="(global|now)"
    
    Init fn="jk_init" worker_file="IPLANET_CONFIG/connectors/workers.properties" log_level="info" log_file="IPLANET_CONFIG/connectors/nsapi.log" shm_file="IPLANET_CONFIG/connectors/tmp/jk_shm"

    위의 구성은 32비트 아키텍처용입니다. 64비트 Solaris를 사용하는 경우 lib/nsapi_redirector.so 문자열을 lib64/nsapi_redirector.so 로 변경합니다.

    파일을 저장하고 종료합니다.

  3. NSAPI 커넥터를 구성합니다.

    부하 분산 또는 부하 분산 구성을 사용하여 기본 구성에 대해 NSAPI 커넥터를 구성할 수 있습니다. 다음 옵션 중 하나를 선택한 후 설정이 완료됩니다.

24.10.2. 클라이언트 요청을 JBoss EAP에 보내도록 NSAPI 커넥터 구성

이 작업은 부하 분산 또는 페일오버 없이 클라이언트 요청을 JBoss EAP 서버로 리디렉션하도록 NSAPI 커넥터를 구성합니다. 리디렉션은 배포별로 수행되므로 URL별로 다릅니다.

중요

이 작업을 계속하기 전에 NSAPI 커넥터를 이미 구성해야 합니다.

기본 HTTP 커넥터 설정
  1. JBoss EAP 서버로 리디렉션할 URL 경로를 정의합니다.

    참고

    IPLANET_CONFIG/obj.conf 에서 행이 이전 행의 연속인 경우를 제외하고는 행 시작 부분에 공백이 허용되지 않습니다.

    IPLANET_CONFIG/obj.conf 파일을 편집합니다. <Object name="default"> 로 시작하는 섹션을 찾고 아래의 예제 파일에 표시된 형식으로 일치하는 각 URL 패턴을 추가합니다. jknsapi 문자열은 다음 단계에서 정의할 HTTP 커넥터를 나타냅니다. 이 예제에서는 패턴 일치에 와일드카드를 사용하는 것을 보여줍니다.

    <Object name="default">
    [...]
    NameTrans fn="assign-name" from="/status" name="jknsapi"
    NameTrans fn="assign-name" from="/images(|/*)" name="jknsapi"
    NameTrans fn="assign-name" from="/css(|/*)" name="jknsapi"
    NameTrans fn="assign-name" from="/nc(|/*)" name="jknsapi"
    NameTrans fn="assign-name" from="/jmx-console(|/*)" name="jknsapi"
    </Object>
  2. 각 경로를 제공하는 작업자를 정의합니다.

    IPLANET_CONFIG/obj.conf 파일을 계속 편집합니다. 방금 편집한 섹션의 닫기 태그 바로 뒤에 다음을 추가합니다. </Object>.

    <Object name="jknsapi">
    ObjectType fn=force-type type=text/plain
    Service fn="jk_service" worker="worker01" path="/status"
    Service fn="jk_service" worker="worker02" path="/nc(/*)"
    Service fn="jk_service" worker="worker01"
    </Object>

    위의 예제에서는 요청을 worker 01 이라는 작업자로 URL 경로 /status 로 리디렉션하고 /nc/ 아래의 모든 URL 경로를 worker02 라는 작업자로 리디렉션합니다. 세 번째 줄은 이전 행과 일치하지 않는 jknsapi 오브젝트에 할당된 모든 URL이 worker01 에 제공됨을 나타냅니다.

    파일을 저장하고 종료합니다.

  3. 작업자 및 해당 속성을 정의합니다.

    IPLANET_CONFIG/connectors/ 디렉터리에 workers.properties 라는 파일을 생성합니다. 다음 내용을 파일에 붙여넣고 환경에 맞게 수정합니다.

    # An entry that lists all the workers defined
    worker.list=worker01, worker02
    
    # Entries that define the host and port associated with these workers
    worker.worker01.host=127.0.0.1
    worker.worker01.port=8009
    worker.worker01.type=ajp13
    
    worker.worker02.host=127.0.0.100
    worker.worker02.port=8009
    worker.worker02.type=ajp13

    workers.properties 파일은 Apache mod_jk와 동일한 구문을 사용합니다.

    파일을 저장하고 종료합니다.

  4. iPlanet 웹 서버 다시 시작

    다음 명령을 실행하여 iPlanet 웹 서버를 다시 시작합니다.

    IPLANET_CONFIG/../bin/stopserv
    IPLANET_CONFIG/../bin/startserv

이제 iPlanet Web Server에서 JBoss EAP에 배포하도록 구성한 URL로 클라이언트 요청을 보냅니다.

24.10.3. 여러 JBoss EAP 서버 간에 클라이언트 요청의 균형을 조정하도록 NSAPI 커넥터 구성

이 작업은 부하 분산 구성에서 클라이언트 요청을 JBoss EAP 서버로 보내도록 NSAPI 커넥터를 구성합니다.

중요

이 작업을 계속하기 전에 NSAPI 커넥터를 이미 구성해야 합니다.

로드 밸런싱을 위한 커넥터 구성
  1. JBoss EAP 서버로 리디렉션할 URL 경로를 정의합니다.

    참고

    IPLANET_CONFIG/obj.conf 에서 행이 이전 행의 연속인 경우를 제외하고는 행 시작 부분에 공백이 허용되지 않습니다.

    IPLANET_CONFIG/obj.conf 파일을 편집합니다. <Object name="default"> 로 시작하는 섹션을 찾고 아래의 예제 파일에 표시된 형식으로 일치하는 각 URL 패턴을 추가합니다. jknsapi 문자열은 다음 단계에서 정의할 HTTP 커넥터를 나타냅니다. 이 예제에서는 패턴 일치에 와일드카드를 사용하는 것을 보여줍니다.

    <Object name="default">
    [...]
    NameTrans fn="assign-name" from="/status" name="jknsapi"
    NameTrans fn="assign-name" from="/images(|/*)" name="jknsapi"
    NameTrans fn="assign-name" from="/css(|/*)" name="jknsapi"
    NameTrans fn="assign-name" from="/nc(|/*)" name="jknsapi"
    NameTrans fn="assign-name" from="/jmx-console(|/*)" name="jknsapi"
    NameTrans fn="assign-name" from="/jkmanager/*" name="jknsapi"
    </Object>
  2. 각 경로를 제공하는 작업자를 정의합니다.

    IPLANET_CONFIG/obj.conf 파일을 계속 편집합니다. 이전 단계에서 수정한 섹션의 닫기 태그 바로 뒤에 </Object> 다음 새 섹션을 추가하고 요구 사항에 맞게 수정합니다.

    <Object name="jknsapi">
    ObjectType fn=force-type type=text/plain
    Service fn="jk_service" worker="status" path="/jkmanager(/*)"
    Service fn="jk_service" worker="router"
    </Object>

    This jksnapi 오브젝트는 기본 개체에서 name="jksnapi" 매핑에 매핑된 각 경로를 제공하는 데 사용되는 작업자 노드를 정의합니다. /jkmanager/* 와 일치하는 URL을 제외한 모든 것이 router 이라는 작업자로 리디렉션됩니다.

  3. 작업자 및 해당 속성을 정의합니다.

    IPLANET_CONFIG/connector/workers.properties 라는 파일을 만듭니다. 다음 내용을 파일에 붙여넣고 환경에 맞게 수정합니다.

    # The advanced router LB worker
    # A list of each worker
    worker.list=router,status
    
    # First JBoss EAP server
    # (worker node) definition.
    # Port 8009 is the standard port for AJP
    #
    
    worker.worker01.port=8009
    worker.worker01.host=127.0.0.1
    worker.worker01.type=ajp13
    worker.worker01.ping_mode=A
    worker.worker01.socket_timeout=10
    worker.worker01.lbfactor=3
    
    # Second JBoss EAP server
    worker.worker02.port=8009
    worker.worker02.host=127.0.0.100
    worker.worker02.type=ajp13
    worker.worker02.ping_mode=A
    worker.worker02.socket_timeout=10
    worker.worker02.lbfactor=1
    
    # Define the load-balancer called "router"
    worker.router.type=lb
    worker.router.balance_workers=worker01,worker02
    
    # Define the status worker
    worker.status.type=status

    workers.properties 파일은 Apache mod_jk와 동일한 구문을 사용합니다.

    파일을 저장하고 종료합니다.

  4. iPlanet 웹 서버 7.0을 다시 시작합니다.

    IPLANET_CONFIG/../bin/stopserv
    IPLANET_CONFIG/../bin/startserv

iPlanet 웹 서버는 로드 밸런싱 구성에서 구성한 URL 패턴을 JBoss EAP 서버로 리디렉션합니다.