22.10. Oracle NSAPI 커넥터
Netscape Server API(NSAPI)는 이전에 Netscape Web Server인 Oracle iPlanet Web Server가 서버에 대한 확장을 구현하기 위해 제공하는 API입니다. 이러한 확장 기능을 서버 플러그인이라고 합니다. NSAPI 커넥터는 nsapi_redirector.so 에서 사용되며 Oracle iPlanet Web Server로 조정된 mod_jk의 확장입니다. NSAPI 커넥터를 사용하면 Oracle iPlanet Web Server를 로드 밸런서 장치로 사용하여 JBoss EAP 인스턴스를 작업자 노드로 구성할 수 있습니다.
Oracle iPlanet Web Server의 지원되는 구성에 대한 자세한 내용은 JBoss EAP 지원 구성을 참조하십시오.
22.10.1. NSAPI 커넥터를 사용하도록 Oracle iPlanet 웹 서버 구성 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- JBoss EAP는 작업자 역할을 할 각 서버에 설치 및 구성됩니다.
Red Hat 고객 포털에서 NSAPI 커넥터를 다운로드합니다.
- 브라우저를 열고 Red Hat Customer Portal JBoss Software Downloads 페이지에 로그인합니다.
- 제품 드롭다운 메뉴에서 Web Connectors 를 선택합니다.
- 버전 드롭다운 메뉴에서 최신 JBoss Core Services 버전을 선택합니다.
- 목록에서 Red Hat JBoss Core Services NSAPI Connector 를 찾아 시스템에 대한 올바른 플랫폼 및 아키텍처를 선택하고 다운로드 링크를 클릭합니다.
-
lib/또는lib64/디렉터리에 있는nsapi_redirector.so파일을IPLANET_CONFIG/lib/또는IPLANET_CONFIG/lib64/디렉터리에 추출합니다.
NSAPI 커넥터를 설정합니다.
이 지침에서 IPLANET_CONFIG 는 Oracle iPlanet 구성 디렉터리(일반적으로 /opt/oracle/webserver7/config/ )를 나타냅니다. Oracle iPlanet 구성 디렉터리가 다른 경우 그에 따라 지침을 수정합니다.
서블릿 매핑을 비활성화합니다.
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-->파일을 저장하고 종료합니다.
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비트 아키텍처용입니다.
파일을 저장하고 종료합니다.
NSAPI 커넥터를 구성합니다.
로드 밸런싱 또는 로드 밸런싱 구성을 사용하여 기본 구성에 대해 NSAPI 커넥터를 구성할 수 있습니다. 다음 옵션 중 하나를 선택하면 구성이 완료될 것입니다.
22.10.2. JBoss EAP에 클라이언트 요청을 전송하도록 NSAPI 커넥터 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 작업에서는 로드 밸런싱 또는 페일오버 없이 클라이언트 요청을 JBoss EAP 서버로 리디렉션하도록 NSAPI 커넥터를 구성합니다. 리디렉션은 배포별로 수행되므로 URL별로 리디렉션됩니다.
이 작업을 계속하기 전에 NSAPI 커넥터를 이미 구성해야 합니다.
기본 HTTP 커넥터 설정
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>각 경로에 서비스를 제공하는 작업자를 정의합니다.
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>위의 예제에서는 URL 경로 /status 로 요청을 worker01 이라는 작업자로 리디렉션하고
/nc/아래의 모든 URL 경로는 worker02 라는 작업자로 리디렉션합니다. 세 번째 줄은 이전 행과 일치하지 않는 jknsapi 오브젝트에 할당된 모든 URL이 worker01 에게 제공됨을 나타냅니다.파일을 저장하고 종료합니다.
작업자 및 해당 속성을 정의합니다.
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=ajp13workers.properties파일은 Apache mod_jk와 동일한 구문을 사용합니다.파일을 저장하고 종료합니다.
iPlanet 웹 서버 재시작
다음 명령을 실행하여 iPlanet 웹 서버를 다시 시작합니다.
IPLANET_CONFIG/../bin/stopserv IPLANET_CONFIG/../bin/startserv
iPlanet Web Server는 이제 클라이언트 요청을 JBoss EAP에 배포하도록 구성한 URL로 보냅니다.
22.10.3. 여러 JBoss EAP 서버 간에 클라이언트 요청의 균형을 조정하도록 NSAPI Connector 구성 링크 복사링크가 클립보드에 복사되었습니다!
이 작업은 로드 밸런싱 구성에서 클라이언트 요청을 JBoss EAP 서버로 전송하도록 NSAPI 커넥터를 구성합니다.
이 작업을 계속하기 전에 NSAPI 커넥터를 이미 구성해야 합니다.
로드 밸런싱을 위한 커넥터 구성
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>각 경로에 서비스를 제공하는 작업자를 정의합니다.
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>이
jksnapi오브젝트는기본오브젝트에서name="jksnapi"매핑에 매핑된 각 경로를 제공하는 데 사용되는 작업자 노드를 정의합니다./jkmanager/*와 일치하는 URL을 제외한 모든 URL은라우터라는 작업자로 리디렉션됩니다.작업자 및 해당 속성을 정의합니다.
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=statusworkers.properties파일은 Apache mod_jk와 동일한 구문을 사용합니다.파일을 저장하고 종료합니다.
iPlanet Web Server 7.0을 다시 시작합니다.
IPLANET_CONFIG/../bin/stopserv IPLANET_CONFIG/../bin/startserv
iPlanet 웹 서버는 로드 밸런싱 구성에서 JBoss EAP 서버로 구성한 URL 패턴을 리디렉션합니다.