plugin-cfg.xml 파일
plugin-cfg.xml 파일에는 웹 서버 플러그인이 요청을 전달하는 방식을 판별하는 구성 정보가 포함되어 있습니다.
WebSphere Application Server Traditional
두 가지 유형의 plugin-cfg.xml 파일(application-centric 및 topology-centric)을 작성할 수 있습니다.

애플리케이션 중심 구성 파일에는 웹 서버와 애플리케이션 서버 정의 모두에 맵핑되는 애플리케이션이 있습니다. 관리 콘솔을 사용하여 플러그인에 대해 작성하는 변경사항은 생성 시 plugin-cfg.xml 파일에 지속됩니다. 애플리케이션 중심 구성은 Intelligent Management와 같은 동적 기능에 증가된 유연성과 지원을 제공합니다.
토폴로지 중심 파일은 환경에서 정의된 모든 내용을 표시합니다. 일반적으로 이 plugin-cfg.xml 파일은 웹 서버가 정의되어 있지 않은 경우 사용됩니다.
- plugin-cfg.xml 파일이 app_server_root\dmgr\cells 디렉토리에 있는 경우 플러그인 생성 프로세스에서는 관리 콘솔의 패널로부터 업데이트된 값을 무시하고 XML 파일에 있는 기존 값을 사용합니다. 이 경우 해당 값을 지속하려면 XML 파일을 수동으로 업데이트해야 합니다.
- plugin-cfg.xml 파일이 app_server_root\dmgr\cells 디렉토리에 없는 경우 플러그인 생성 프로세스에서는 plugin-cfg.xml 파일을 작성합니다. 이 프로세스에서는 관리 콘솔의 패널에서 설정되는 최신 값을 지속시킵니다.


Liberty
사용하는 서버와 동일한 Java SDK에서 WebSphere:name=com.ibm.ws.jmx.mbeans.generatePluginConfig MBean을 호출하여 Liberty 서버에 대한 plugin-cfg.xml 파일을 생성할 수 있습니다.
요소 및 속성
plugin-cfg.xml 파일에는 다음과 같은 요소 및 속성이 포함되어 있습니다. 달리 표시되지 않은 경우 각각의 요소 및 속성은 plugin-cfg.xml 파일에서 한 번만 지정할 수 있습니다. Config 요소는 필수입니다.
- Config
- IgnoreDNSFailures
- RefreshInterval
- ASDisableNagle
IISDisableNagle
- VHostMatchingCompat
- AppServerPortPreference
- ResponseChunkSize
- AcceptAllContent
- ChunkedResponse
- ESIEnableToPassCookies
- GetDWLMTable
OS400ConvertQueryStringToJobCCSID
- 로그
- Property Name="esiEnable" Value="true/false"
- Property Name="esiMaxCacheSize" Value="integer"
- Property Name="ESIInvalidationMonitor" Value="true/false"
- Property Name="FIPSEnable" Value="true/false"
- Property Name="PluginInstallRoot" Value="C:\IBM\WebSphere\Plugins"
- ServerCluster
- VirtualHostGroup
- UriGroup
- 라우트
- RequestMetrics
Config
필수인 이 요소는 HTTP 플러그인 구성 파일을 시작합니다.
IgnoreDNSFailures
시작 시 플러그인이 구성의 DNS 장애를 무시하는지 여부를 지정합니다. true로 설정된 경우에는 각 서버 클러스터에 있는 하나 이상의 서버가 호스트 이름을 분석할 있으면 플러그인이 구성의 DNS 장애를 무시하고 성공적으로 시작됩니다. 호스트 이름을 분석할 수 없는 모든 서버는 구성의 수명 동안 사용 불가능으로 표시됩니다. 요청 라우팅 중에는 호스트 이름 분석을 시도하지 않습니다. DNS 장애가 발생하면 로그 메시지가 플러그인 로그 파일에 기록되며 웹 서버를 시작하지 못하게 하는 대신 플러그인 초기화가 계속 진행됩니다. 기본값은 false이며 DNS 장애로 인해 웹 서버가 시작되지 않음을 의미합니다.
RefreshInterval
플러그인이 구성 파일에서 업데이트 또는 변경사항이 발생했는지 확인하는 시간 간격(초)을 지정합니다. 플러그인은 파일에서 플러그인 구성이 마지막으로 로드된 이후 발생한 수정사항을 확인합니다.
ASDisableNagle
사용자가 플러그인과 애플리케이션 서버 간 연결에 대해 nagle 알고리즘을 사용 안함으로 설정하려는지 여부를 지정합니다. 기본적으로 nagle 알고리즘은 사용으로 설정됩니다.
값은 true 또는 false일 수 있습니다.
![[Windows]](../images/windows.gif)
IISDisableNagle
사용자가 Microsoft Internet Information Services(IIS)에서 nagle 알고리즘을 사용 안함으로 설정하려는지 여부를 지정합니다. 기본적으로 nagle 알고리즘은 사용으로 설정됩니다.
값은 true 또는 false일 수 있습니다.
VHostMatchingCompat
- true - 요청이 수신된 포트 번호를 사용하여 실제로 일치가 수행되는 경우
- false - 호스트 헤더에 포함된 포트 번호를 사용하여 논리적으로 일치가 수행되는 경우
기본값은 false입니다.
AppServerPortPreference
- hostHeader - 수신되는 HTTP 요청의 호스트 헤더에서 제공되는 포트 번호를 사용할 경우
- webserverPort - 웹 서버가 요청을 수신한 포트 번호를 사용할 경우
기본값은 hostHeader입니다.
ResponseChunkSize
응답 본문을 읽을 때 사용할 최대 청크 크기를 지정합니다. 예를 들어, Config ResponseChunkSize="N">을 지정하십시오. 여기서 N은 청크 크기(KB)와 동일합니다.
플러그인은 모든 응답 데이터를 읽을 때까지 64K 청크 단위로 응답 본문을 읽습니다. 이 접근 방식을 사용하면 응답 본문에 많은 양의 데이터가 포함된 요청의 경우 성능 문제가 발생합니다.
응답 본문의 컨텐츠 길이를 알 수 없는 경우에는 전체 본문을 읽을 때까지 NKB의 버퍼가 할당되고 NKB 크기의 청크 단위로 본문을 읽습니다. 컨텐츠 길이를 알고 있는 경우에는 컨텐츠 길이와 N 중 더 짧은 길이의 버퍼 크기를 사용하여 응답 본문을 읽습니다.
기본 청크 크기는 64K입니다.
AcceptAllContent
- True - 모든 요청에 대해 컨텐츠를 예상하고 읽는 경우
- False - POST 및 PUT 요청에 대해서만 컨텐츠를 예상하고 읽는 경우
기본값은 True입니다.
ChunkedResponse
Transfer-Encoding: Chunked 응답 헤더가 응답에 있는 경우 플러그인이 클라이언트에 대한 응답의 청크를 사용해야 하는지 여부를 지정합니다.
이 속성은 IIS, Oracle iPlanet 및 Lotus® Domino® 웹 서버에만 적용됩니다. IBM® HTTP Server는 클라이언트에 대한 응답의 청크를 자동으로 처리합니다.
이 속성에 대해 다음 값 중 하나를 지정할 수 있습니다.
- true - Transfer-Encoding: Chunked 응답 헤더가 응답에 있는 경우 플러그인이 클라이언트에 대한 응답을 청크하는 경우
- false - 응답이 청크되지 않는 경우
기본값은 false입니다.
ESIEnableToPassCookies
ESI 포함 요청 처리 시 WebSphere Application Server에 세션 쿠키 전달을 허용할지 여부를 지정합니다. 값이 true로 설정된 경우에는 이 사용자 정의 특성이 사용으로 설정됩니다. 값이 false로 설정된 경우에는 사용자 정의 특성이 사용 안함으로 설정됩니다. 기본적으로 값은 false로 설정됩니다.
GetDWLMTable
새로 작성된 플러그인 프로세스가 HTTP 요청을 처리하기 전에 WebSphere Application Server에서 파티션 테이블을 사전에 요청할 수 있게 할지 여부를 지정합니다. 이 사용자 정의 특성은 메모리 간 세션 관리가 구성된 경우에만 사용됩니다. 값이 true로 설정된 경우에는 이 사용자 정의 특성이 사용으로 설정됩니다. 값이 false로 설정된 경우에는 사용자 정의 특성이 사용 안함으로 설정됩니다. 기본적으로 값은 false로 설정됩니다.
![[IBM i]](../images/iseries.gif)
OS400ConvertQueryStringToJobCCSID
HTTP 요청에 대한 조회 문자열이 내부 처리를 위해 EBCDIC 코드 페이지 37 또는 IBM HTTP Server 작업의 코드 페이지로 변환되는지 여부를 지정합니다. 기본값은 false이며 조회 문자열을 EBCDIC 코드 페이지 37로 변환합니다.
TrustedProxyEnable
웹 서버 플러그인이 TrustedProxyList 사용자 정의 특성에 대해 나열되는 프록시 서버 및 로드 밸런서와 인터페이스로 접속되도록 허용합니다. 이 특성이 true로 설정되면 이 신뢰할 수 있는 프록시 목록에 있는 프록시 서버 및 로드 밸런서가 $WSRA 및 $WSRH 내부 헤더의 값을 설정할 수 있습니다. $WSRA 내부 헤더는 원격 호스트(일반적으로 브라우저)의 IP 주소이거나 NAT(Network Address Translation)에 의해 확보되는 내부 주소입니다. $WSRH 내부 헤더는 원격 호스트의 호스트 이름입니다. 이 헤더 정보를 통해 웹 서버 플러그인이 해당 특정 프록시 서버 또는 로드 밸런서와 인터페이스로 접속할 수 있습니다.
이 사용자 정의 특성을 사용하는 경우에는 TrustedProxyList 사용자 정의 특성을 사용하여 신뢰할 수 있는 프록시 서버 및 로드 밸런서의 목록도 지정해야 합니다. 또한 관리 콘솔의 요청 라우팅 패널에서 특수 헤더 제거 선택란을 선택 취소해야 합니다. 자세한 정보는 웹 서버 플러그인 요청 라우팅 특성에 대한 문서를 참조하십시오.
TrustedProxyList
이 웹 서버 플러그인과 인터페이스로 접속할 수 있는 권한을 가진 모든 프록시 서버 또는 로드 밸런서의 쉼표로 구분된 목록을 지정합니다. 이 특성은 TrustedProxyEnable=true 사용자 정의 특성 설정과 함께 사용해야 합니다. TrustedProxyEnable 사용자 정의 특성이 false로 설정된 경우 이 목록은 무시됩니다.
SSLConsolidate
웹 서버 플러그인이 구성 파일에서 이미 정의된 다른 SSL 전송의 설정과 각각의 새 SSL 전송 설정을 비교하는지 여부를 지정합니다. 이 특성이 true로 설정되고 플러그인이 새 SSL 전송에 대해 지정된 키 링 및 CertLabel 값이 이미 정의된 SSL 전송에 대해 지정된 값과 일치한다고 판별하는 경우 플러그인은 새 SSL 환경을 작성하는 대신 기존 SSL 환경을 사용합니다. 더 적은 수의 SSL 환경을 작성하면 플러그인에 더 적은 메모리가 필요하고 플러그인 초기화 시간이 줄어들어 전체 GSkit 환경이 최적화됩니다.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
SSLPKCSDriver
선택적 SSL 코프로세서와 인터페이스로 접속되는 로드 가능한 모듈의 완전한 이름을 지정합니다. 이 완전한 이름은 디렉토리 경로 및 모듈 이름을 포함해야 합니다.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
SSLPKCSPassword
SSLPKCSDriver 사용자 정의 특성에 대해 지정된 모듈과 인터페이스로 접속되는 SSL 코프로세서의 비밀번호를 지정합니다.
IBM HTTP Server를 사용하는 경우에는 sslstash 프로그램을 사용하여 이 비밀번호가 포함된 파일을 작성할 수 있습니다. 이 상황에서는 실제 비밀번호 대신 해당 파일의 완전한 이름을 이 사용자 정의 특성의 값으로 지정할 수 있습니다.
로그
플러그인에 의해 기록되는 로그 메시지의 위치 및 레벨에 대해 설명합니다. 구성 파일에 로그 요소가 지정되어 있지 않으면 일부 경우 로그 메시지가 웹 서버 오류 로그에 기록됩니다.
예를 들어, 다음의 코드 행을 지정할 수 있습니다.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
<Log LogLevel="Error" Name="/opt/WebSphere/AppServer60/logs/http_plugin.log"/>
![[z/OS]](../images/ngzos.gif)
<Log LogLevel="Error" Name="/log_directory/file_name"/>
- Name
플러그인이이 오류 메시지를 기록하는 로그 파일의 완전한 경로를 지정합니다. 각각의 로그에 대해 정확하게 하나의 속성을 지정하십시오.
해당 파일이 없는 경우에는 해당 파일이 작성됩니다. 해당 파일이 있으면 해당 파일이 추가 모드로 열리고 이전 플러그인 로그 메시지는 유지됩니다.
전이 사용자용: 버전 7로 시작하는 플러그인 로그 파일에 대해 지정하는 이름에는 더 이상 날짜 및 시간소인과 프로세스 ID가 추가되지 않습니다. 따라서 날짜로 구별되는 여러 로그 파일 대신 단일 웹 서버 플러그인 로그 파일이 작성됩니다. trns
- LogLevel
플러그인이 로그에 기록하는 로그 메시지의 세부사항 레벨을 지정합니다. 각각의 로그에 대해 0(영) 또는 다음 값 중 하나를 지정하십시오.
로그 레벨 값 로그 레벨 설명 Trace 요청 프로세스의 모든 단계가 자세히 로그됩니다. Stats 각각의 요청에 대해 선택된 서버와 요청 처리와 관련된 기타 로드 밸런싱 정보가 로그됩니다. Warn 비정상 요청 처리로부터 발생하는 모든 경고 및 오류 메시지가 로그됩니다. Error 비정상 요청 처리로부터 발생하는 오류 메시지만 로그됩니다. Debug 요청 처리 시 수행되는 모든 중요 단계가 로그됩니다. Detail 요청 및 응답에 대한 모든 정보가 로그됩니다. 로그 요소에 대해 LogLevel 값이 지정되지 않은 경우에는 기본값(Error)이 사용됩니다.
문제점 방지: 레벨을 Trace로 설정할 때는 주의하십시오. 이 레벨에서는 복수의 메시지가 로그되어 디스크 공간을 빠르게 소모할 수 있습니다. 성능에 부정적인 영향을 미치므로 정상 작동 중에는 Trace 설정을 사용하지 마십시오.gotcha
문제점 방지: 레벨을 Trace로 설정할 때는 주의하십시오. 이 레벨에서는 복수의 메시지가 로그되어 파일 시스템을 빠르게 소모할 수 있습니다. 성능에 부정적인 영향을 미치므로 정상 작동 중에는 Trace 설정을 사용하지 마십시오.gotcha
Property Name="esiEnable" Value="true/false"
ESI(Edge Side Include) 프로세서를 사용 또는 사용 안함으로 설정합니다. ESI 프로세서가 사용 안함으로 설정된 경우에는 이 파일에 있는 다른 ESI 요소가 무시됩니다.
Value를 true 또는 false로 설정할 수 있습니다. 기본적으로 ESI 프로세서는 사용 안함으로 설정되고 값이 false로 설정됩니다.
Property Name="esiMaxCacheSize" Value="integer"
캐시의 최대 크기(1KB 단위)를 지정합니다. 캐시의 기본 최대 크기는 1024KB(1MB)입니다. 캐시가 가득 차면 만기 시간에 가장 근접한 항목이 먼저 캐시에서 삭제됩니다.
Property Name="ESIInvalidationMonitor" Value="true/false"
ESI 프로세서가 애플리케이션 서버로부터 무효화를 수신하는지 여부를 지정합니다.
Value를 true 또는 false로 설정할 수 있습니다. 기본적으로 이 특성은 false로 설정됩니다.
Property Name="FIPSEnable" Value="true/false"
애플리케이션 서버에 대한 SSL(Secure Sockets Layer) 연결 작성을 위해 FIPS(Federal Information Processing Standard)가 사용으로 설정되는지 여부를 지정합니다. 애플리케이션 서버에서 FIPS가 사용으로 설정된 경우 이 특성을 true로 설정하십시오.
Value 값을 true 또는 false로 설정할 수 있습니다. 기본적으로 이 특성은 false로 설정됩니다.
Property Name="PluginInstallRoot" Value="C:\IBM\WebSphere\Plugins"
플러그인의 설치 경로를 지정합니다. WebSphere Application Server는 글로벌 설치 대신 GSKit(Global Security Kit)의 로컬 설치를 지원하므로 GSKit을 사용하는 경우에는 이 특성이 필수입니다. 속성 값은 플러그인 설치 루트의 완전한 경로로 설정됩니다.
전송에서 인식하는 지원되는 이름은 keyring, stashfile 및 password입니다. 기본적으로 이 특성은 none으로 설정됩니다.
ServerCluster
일반적으로 동일한 유형의 요청을 서비스하도록 구성된 서버 그룹을 지정합니다. 각각의 구성에 대해 하나 이상의 클러스터를 지정하십시오.
가장 단순한 경우 클러스터에는 하나의 서버 정의만 포함되어 있습니다. 둘 이상의 서버가 정의된 경우 플러그인은 Round Robin 또는 Random 알고리즘을 사용하여 정의된 서버에서 로드 밸런싱을 수행합니다. 기본 알고리즘은 Round Robin입니다.
다음 코드는 ServerCluster 요소의 예입니다.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
<ServerCluster Name="Servers">
<ClusterAddress Name="ClusterAddr">
<Transport Hostname="192.168.1.2" Port="9080" Protocol="HTTP"/>
<Transport Hostname="192.168.1.2" Port="9443" Protocol="HTTPS">
<Property Name="Keyring" value="c:/WebSphere/AppServer/keys/keyring.kdb"/>
<Property Name="Stashfile" value="c:/WebSphere/AppServer/keys/keyring.sth"/>
</Transport>
</ClusterAddress>
<Server Name="Server1">
<Transport Hostname="192.168.1.3" Port="9080" Protocol="HTTP"/>
<Transport Hostname="192.168.1.3" Port="9443" Protocol="HTTPS">
<Property Name="Keyring" value="c:/WebSphere/AppServer/keys/keyring.kdb"/>
<Property Name="Stashfile" value="c:/WebSphere/AppServer/keys/keyring.sth"/>
</Transport>
</Server>
<Server Name=Server2>
<Transport Hostname="192.168.1.4" Port="9080" Protocol="HTTP"/>
<Transport Hostname="192.168.1.4" Port="9443" Protocol="HTTPS">
<Property Name="Keyring" value="c:/WebSphere/AppServer/keys/keyring.kdb"/>
<Property Name="Stashfile" value="c:/WebSphere/AppServer/keys/keyring.sth"/>
</Transport>
</Server>
<Server Name="Server3">
<Transport Hostname="192.168.1.5" Port="9080" Protocol="HTTP"/>
<Transport Hostname="192.168.1.5" Port="9443" Protocol="HTTPS">
<Property Name="Keyring" value="c:/WebSphere/AppServer/keys/keyring.kdb"/>
<Property Name="Stashfile" value="c:/WebSphere/AppServer/keys/keyring.sth"/>
</Transport>
</Server>
<PrimaryServers>
<Server Name="Server1"/>
<Server Name="Server2"/>
</PrimaryServers>
<BackupServers>
<Server Name="Server3"/>
</BackupServers>
</ServerCluster>
![[z/OS]](../images/ngzos.gif)
<ServerCluster CloneSeparatorChange="false"
LoadBalance="Round Robin" Name="Cluster1"
PostSizeLimit="10000000" RemoveSpecialHeaders="true"
RetryInterval="60">
<Server
CloneID="BA36BEC1EB243D8B000000E4000000030926301B"
ConnectTimeout="0" ExtendedHandshake="false"
LoadBalanceWeight="2" MaxConnections="0"
Name="SY1_ClusterMember1" WaitForContinue="false">
<Transport Hostname="BOSSXXXX.PLEX1.L2.IBM.COM" Port="9084" Protocol="http"/>
<Transport Hostname="BOSSXXXX.PLEX1.L2.IBM.COM" Port="0" Protocol="https">
<Property Name="Keyring" value="safkeyring:///mzjring1/"/>
<Property Name="Stashfile" value=""""/>
<Property Name="certLabel" Value="selfsigned"/>
</Transport>
</Server>
<Server CloneID="BA36BED017FDF40E000000E4000000030926301B"
ConnectTimeout="0" ExtendedHandshake="false"
LoadBalanceWeight="2" MaxConnections="0"
Name="SY1_ClusterMember2" WaitForContinue="false">
<Transport Hostname="BOSSXXXX.PLEX1.L2.IBM.COM" Port="9085" Protocol="http"/>
<Transport Hostname="BOSSXXXX.PLEX1.L2.IBM.COM" Port="0" Protocol="https">
<Property Name="Keyring" value="safkeyring:///mzjring1/">
<Property Name="Stashfile" value=""""/>
<Property Name="certLabel" Value="selfsigned"/>
</Transport>
</Server>
<PrimaryServers>
<Server Name="SY1_ClusterMember1"/>
<Server Name="SY1_ClusterMember2"/>
</PrimaryServers>
</ServerCluster>

z/OS PTF UK35083 패키지에는 이 웹 서버 플러그인 변경에 해당하는 z/OS HTTP Server, 버전 5.3에 대한 SSL 인터페이스 변경사항이 포함되어 있습니다. 따라서 새 웹 서버 플러그인 SSL 인터페이스가 제대로 작동하려면 먼저 이 PTF를 시스템에 적용해야 합니다.
IBM HTTP Server for z/OS, 버전 5.3에 대한 SSLMODE=MULTI 옵션도 httpd.conf 파일에 포함해야 합니다. SSLMODE=ON 옵션은 버전 7.0 이상에서 지원되지 않습니다.
SSLMode multi 옵션이 httpd.conf 파일에서 지정되지 않았거나 z/OS PTF UK35083 패키지가 시스템에 적용되지 않은 경우에는 오류 메시지 IMW0584W가 수신될 수 있습니다. 이 메시지는 HTTP Server에 대해 지정된 SSL 모드가 IBM HTTP Server for z/OS, 버전 5.3과 함께 사용되는 웹 서버 플러그인에 대한 SSL 모드와 호환되지 않음을 표시합니다. 어느 경우든 예측할 수 없는 결과가 발생할 수 있습니다.
- HFS(Hierarchical File System)에서 숨김 파일과 함께 kdb
파일을 사용하는 경우에는 이전의 예에 표시된 대로 Property Name=keyring 요소와
Property Name=stashfile 요소를 모두 지정하십시오.
문제점 방지: 이 요소에 대해 지정하는 값의 형식은 제품의 이전 버전에서 지정된 형식과 다릅니다. gotcha
- kdb 파일 대신 SAF(System Authorization Facility) 키 링을
사용하는 경우에는 관리 콘솔에서 다음 두 사용자 정의 플러그인 특성을 작성해야 합니다.
- KeyringLocation
- SAF 키 링의 디렉토리 위치를 이 특성의 값으로 지정하십시오. 이 구성 변경사항을 저장하면 이 디렉토리 위치가 plugin-cfg.xml 파일에서 키 링 특성의 값이 됩니다.
- StashfileLocation
- """"(널)을 이 특성의 값으로 지정하십시오. 이 구성 변경사항을 저장하면 """"(널)이 plugin-cfg.xml 파일에서 숨김 파일 특성의 값이 됩니다.
관리 콘솔에서 KeyringLocation 및 StashfileLocation을 작성하는 방법에 대한 지시사항은 Web server plug-in configuration properties의 내용을 참조하십시오.
SAF 키 링에 대한 다음 예를 사용하십시오.<Transport Hostname="appserver.example.com" Port="9443" Protocol="https"> <Property name="keyring" value="safkeyring:///SAF_keyring_name"/> <Property Name="stashfile" value=""""/> </Transport>
- Name
이 서버 그룹에 사용할 논리 또는 관리 이름을 지정합니다. 각각의 ServerCluster에 대해 하나의 속성을 지정하십시오.
- LoadBalance
이 속성에 대해 다음과 같은 값을 지정할 수 있습니다.
Round Robin
Random
Round Robin 구현은 임의의 시작점을 가집니다. 첫 번째 애플리케이션 서버는 임의로 선택됩니다. 그런 다음 Round Robin을 사용하여 해당 지점 이후의 애플리케이션 서버를 선택합니다. 이 구현을 사용하면 다중 프로세스 기반 웹 서버에서 일부 프로세스가 첫 번째 요청을 동일한 애플리케이션 서버에 전송하여 시작되지 않습니다.
Random 구현도 임의의 시작점을 가집니다. 하지만 이 구현을 사용하면 모든 후속 서버도 임의로 선택됩니다. 따라서 동일한 서버가 반복적으로 선택되고 다른 서버는 유휴 상태로 남아 있을 수 있습니다.
기본 로드 밸런싱 유형은 Round Robin입니다.
- IgnoreAffinityRequests
Round Robin 알고리즘을 기반으로 서버를 선택할 때 플러그인이 서버에 대해 작성된 선호도 요청 수를 무시하는지 여부를 지정합니다. 각각의 ServerCluster에 대해 0개 또는 하나의 속성을 지정하십시오. 값은 true 또는 false입니다. 값이 false로 설정된 경우에는 작성된 선호도 요청 수도 서버 선택 프로세스에서 고려됩니다.
기본값은 false이며 작성된 선호도 요청 수가 Round Robin 알고리즘에서 사용됨을 의미합니다.
전이 사용자용: 상태 전이 사용자의 경우: 제품의 이전 버전에서 변경된 내용입니다. 이전 버전의 WebSphere Application Server에서 기본값은 true입니다. trns
- RetryInterval
서버가 표시된 시간부터 플러그인이 연결을 다시 시도하는 시간까지 경과되는 시간에 대해 정수 값을 지정합니다. 기본값은 60초입니다. 각각의 ServerCluster에 대해 0개 또는 하나의 속성을 지정하십시오.
- RemoveSpecialHeaders
플러그인은 애플리케이션 서버에 전달되기 전에 요청에 특수 헤더를 추가합니다. 이 헤더는 애플리케이션이 사용하는 요청에 대한 정보를 저장합니다. 기본적으로 플러그인은 추가하기로 되어 있는 헤더를 추가하기 전에 수신 요청에서 이 헤더를 제거합니다. 각각의 ServerCluster에 대해 0개 또는 하나의 속성을 지정하십시오.
값은 true 또는 false일 수 있습니다. 속성을 false로 설정하면 수신 요청에서 헤더를 제거하지 않아 잠재적 보안 노출이 발생합니다.
- CloneSeparatorChange
더하기 문자(+)를 복제 구분 기호로 예상하도록 플러그인에 지시합니다. 일부 퍼베이시브 디바이스는 세션 선호도와 함께 복제 ID를 구분하는 데 사용되는 콜론 문자((:)를 처리할 수 없습니다. 애플리케이션 서버가 복제 ID를 더하기 문자로 구분하도록 애플리케이션 서버 구성도 변경해야 합니다. 각각의 ServerCluster에 대해 0개 또는 하나의 속성을 지정하십시오.
값은 true 또는 false일 수 있습니다.
- PostSizeLimit
플러그인이 애플리케이션 서버에 요청을 전송할 수 있는 요청 컨텐츠의 최대 KB(1024바이트) 블록 수입니다. 이 크기보다 큰 요청이 수신되면 플러그인이 요청에 실패합니다. 기본값은 -1바이트이며 이는 포스트 크기에 제한이 없음을 표시합니다. 각각의 ServerCluster에 대해 0개 또는 하나의 속성을 지정하십시오.
- PostBufferSize
HTTP 요청의 컨텐츠를 읽을 때 사용되는 최대 버퍼 크기(KB)를 지정합니다. 요청을 처음 수신하는 애플리케이션 서버가 해당 요청을 처리할 수 없는 경우 이 버퍼에 포함된 데이터가 다른 애플리케이션 서버에 전송됩니다. 그런 다음 해당 애플리케이션 서버가 해당 요청을 처리하게 합니다. 컨텐츠가 포함된 요청을 버퍼링한 후 재시도하지 않으려면 이 옵션을 0(영)으로 설정하십시오.
이 옵션을 사용하면 플러그인의 가용성이 향상됩니다. 이 옵션이 0(영)이 아닌 값으로 설정된 경우에는 선택된 애플리케이션 서버가 응답하지 않으면 페이로드가 포함된 보류 중 패킷이 재전송됩니다.
일반적으로 POST 및 PUT 요청이 페이로드를 수반하지만 다른 요청도 페이로드를 수반할 수 있습니다. POST 또는 PUT 요청에 페이로드가 없는 경우에도 이 옵션에 대해 지정된 값이 0(영)이 아니면 해당 요청이 재시도됩니다.
기본값은 0입니다. 각각의 ServerCluster에 대해 0개 또는 하나의 속성을 지정하십시오.
- ServerIOTimeoutRetry
ServerIOTimeout으로 인해 HTTP 플러그인이 제한시간 초과된 HTTP 요청을 재시도하는 횟수에 대한 제한을 지정합니다. 기본값인 -1은 재시도 횟수에 추가적인 제한이 적용되지 않음을 표시합니다. 0 값은 재시도하지 않음을 나타냅니다. 항상 재시도 횟수는 클러스터에 있는 사용 가능한 서버 수에 의해 제한됩니다.
중요사항: HTTP 플러그인 ConnectTimeout으로 인해 이 지시문은 연결 실패 또는 제한시간 초과에 적용되지 않습니다. - Server플러그인 구성의 라우팅 규칙에 따라 라우팅된 요청을 처리하도록 구성된 WebSphere Application Server 인스턴스를 지정합니다. 서버는 로컬 시스템 또는 원격 시스템에서 실행 중인 애플리케이션 서버에 해당합니다. 각각의 ServerCluster에 대해 0개 또는 하나의 속성을 지정하십시오.
- Name
서버에 대해 관리 또는 논리 이름을 지정합니다. 각각의 서버에 대해 정확하게 하나의 속성을 지정하십시오.
- CloneID
요청의 HTTP 쿠키 헤더(URL 재작성을 사용하는 경우에는 URL)에 이 고유 ID가 있으면 다른 모든 라우팅 규칙이 충족된 경우 플러그인은 요청을 이 특정 서버로 라우팅합니다. 서버에서 CloneID가 지정되어 있지 않으면 이 서버에 대해 세션 선호도가 사용으로 설정되지 않습니다. 각각의 서버에 대해 0개 또는 하나의 속성이 있을 수 있습니다.
이 속성은 세션 선호도와 함께 사용됩니다. 이 속성이 설정된 경우 플러그인은 수신 쿠키 헤더 또는 URL에서 JSESSIONID를 확인합니다. JSESSIONID가 발견되면 플러그인은 하나 이상의 복제 ID를 찾습니다. 복제 ID가 발견되고 이 속성에 대해 지정된 값에 대한 일치가 작성되면 요청은 클러스터에서 로드 밸런싱되는 대신 이 서버로 전송됩니다.
우수 사례: 이 값이 설정되면 플러그인에 추가된 요청 처리가 있기 때문에 세션 선호도를 사용하지 않는 경우에는 구성에서 이 복제 ID를 제거하십시오. 플러그인에 복제 ID가 없는 경우에는 세션 선호도가 사용으로 설정되어 있지 않다고 가정되며 요청은 클러스터에서 로드 밸런싱됩니다. bprac
- WaitForContinue
요청 컨텐츠를 애플리케이션 서버에 전송하기 전에 HTTP 1.1 100 Continue 지원을 사용할지 여부를 지정합니다. 가능한 속성 값은 true 또는 false입니다. 기본값은 false입니다. 성능에 영향을 주므로 요청 컨텐츠를 전송하기 전에 플러그인은 애플리케이션 서버로부터 100 Continue 응답을 대기하지 않습니다. 각각의 서버에 대해 0개 또는 하나의 속성을 지정하십시오.
활성화 상태 지속 제한시간 초과로 인해 애플리케이션 서버가 연결을 닫는 경우 장애 발생을 방지하기 위해 POST 요청의 경우 이 특성은 무시됩니다.
특정 유형의 프록시 방화벽과 함께 작동하도록 플러그인을 구성하는 경우 이 기능 사용을 true로 설정하십시오.
- LoadBalanceWeight
플러그인이 가중치 부여된 Round Robin 로드 밸런싱을 수행할 때 이 서버와 연관된 가중치를 지정합니다. 각각의 서버에 대해 0개 또는 하나의 속성을 지정하십시오. 서버의 시작 값은 0과 20 사이의 정수일 수 있습니다. 하지만 실행되고 있지 않은 서버의 경우에는 0만 지정하십시오.
각 서버에 대한 LoadBalanceWeight 값은 해당 서버가 처리하는 각각의 요청에 대해 감소됩니다. 서버 클러스터의 특정 서버에 대한 가중치가 0(영)에 도달하면 세션 선호도를 가진 요청만 해당 서버로 라우팅됩니다. 클러스터에 있는 모든 서버가 가중치 0(영)에 도달하면 클러스터에 있는 모든 서버에 대한 가중치가 재설정되고 알고리즘이 다시 시작됩니다.
우수 사례: 서버가 실행되고 있지 않은 경우에는 해당 서버에 대한 가중치를 0(영)으로 설정하십시오. 그런 다음 플러그인은 여전히 실행 중인 서버의 가중치를 재설정하고 적절한 로드 밸런싱을 유지할 수 있습니다. bprac
- ConnectTimeout
플러그인이 애플리케이션 서버와의 비차단 연결을 수행할 수 있게 합니다. 비차단 연결은 플러그인이 포트의 사용 가능 여부를 판별하기 위해 대상에 접속할 수 없는 경우 유용합니다. 각각의 서버에 대해 0개 또는 하나의 속성을 지정하십시오.
ConnectTimeout 값이 지정되지 않았거나 0으로 설정된 경우 플러그인은 운영 체제가 제한시간(플랫폼에 따라 최대 2분) 초과되고 플러그인이 서버를 사용 불가능으로 표시하도록 허용할 때까지 위치하는 차단 연결을 수행합니다. 0 값을 사용하면 플러그인이 차단 연결을 수행합니다. 0보다 큰 값은 플러그인이 성공적인 연결을 위해 대기하게 할 시간(초)을 지정합니다. 이 시간 간격 경과 후 연결이 발생하지 않으면 플러그인은 서버를 사용 불가능으로 표시하고 클러스터에서 정의된 다른 서버 중 하나로 장애 복구를 수행합니다.
기본값은 5입니다.
- ExtendedHandshake
프록시 방화벽이 플러그인과 애플리케이션 서버 사이에 있는 경우 사용됩니다. 이 경우 플러그인은 예상대로 장애 복구를 수행하지 않습니다. 각각의 서버에 대해 0개 또는 하나의 속성을 지정하십시오.
connect() 메소드가 실패하면 플러그인은 서버를 작동 중지된 것으로 표시합니다. 하지만 프록시 방화벽이 플러그인과 애플리케이션 서버 사이에 있으면 백엔드 애플리케이션 서버가 작동 중지된 경우에도 connect() 메소드가 성공합니다. 이로 인해 플러그인이 다른 애플리케이션 서버로 올바르게 장애 복구되지 않습니다.
플러그인은 애플리케이션 서버와 몇몇 핸드쉐이크를 수행하여 요청 전송 전에 플러그인이 시작되도록 합니다. 이 시나리오를 사용하면 애플리케이션 서버가 작동 중지되었을 때 플러그인이 장애 복구를 수행할 수 있습니다.
값은 true 또는 false일 수 있습니다.
- MaxConnections
임의의 시점에 웹 서버 프로세스를 통해 흐를 수 있는 애플리케이션 서버에 대한 보류 중 연결의 최대 수를 지정합니다. 각각의 서버에 대해 하나의 요소를 지정하십시오.
예를 들어, 다음 시나리오에서:- IBM HTTP Server를 실행 중인 5개의 노드가 애플리케이션 서버와 연결됩니다.
- 각각의 노드는 두 개의 프로세스를 시작합니다.
- MaxConnections 속성이 50으로 설정됩니다.
이 예에서 애플리케이션 서버는 잠재적으로 최대 500개의 연결을 가져올 수 있습니다. 노드 수(5)에 프로세스 수(2)를 곱한 후 이 수에 MaxConnections 속성에 대해 지정된 수(50)를 곱하면 500개의 연결이 생성됩니다.
z/OS 운영 체제에서는 이 속성이 필요하지 않습니다. 워크로드 관리자(WLM)에 대해 작업하는 z/OS 제어기는 새 연결을 동적으로 처리합니다.
기본적으로 MaxConnections는 -1로 설정됩니다. 이 속성이 0 또는 -1로 설정된 경우에는 애플리케이션 서버에 대해 보류 중인 연결의 수에 제한이 없습니다.
- 전송
특정 WebSphere Application Server 인스턴스에 대한 요청을 읽고 쓰기 위한 전송을 지정합니다. 이 전송에서는 요청이 전송되는 애플리케이션 서버의 위치를 판별하기 위해 필요한 정보를 제공합니다. 플러그인은 동일한 프로토콜을 사용하기 위해 복수의 전송이 정의된 시기를 인식할 수 없습니다. 플러그인이 선택하는 전송은 예측할 수 없습니다. 플러그인은 처리 중에 마주치는 첫 번째 전송을 항상 선택합니다. 각각의 서버에 대해 하나 이상의 요소를 지정하십시오.
하나의 비보안 전송과 SSL을 사용하는 하나의 전송을 가지도록 서버를 구성할 수 있습니다. 이 구성에서는 애플리케이션 서버에 요청을 전송하기 위해 사용할 적절한 전송을 판별하기 위해 수신 요청 프로토콜의 일치가 수행됩니다.
- Hostname
WebSphere Application Server 인스턴스가 실행 중인 시스템의 IP 주소 또는 호스트 이름을 지정합니다. 각각의 전송에 대해 정확하게 하나의 속성이 있습니다.
- Port
WebSphere Application Server 인스턴스가 청취 중인 포트를 지정합니다. 각각의 전송에 대해 정확하게 하나의 속성이 있습니다.
- Protocol
이 전송을 통해 통신할 때 사용할 프로토콜(HTTP 또는 HTTPS)을 지정합니다. 각각의 전송에 대해 정확하게 하나의 속성이 있습니다.
- Hostname
- Property각각의 전송에 대해 0개 이상의 요소를 지정하십시오. 전송의 프로토콜이 HTTPS로 설정된 경우에는 이 요소를 사용하여 다양한 초기화 매개변수(예: password, keyring, stashfile)를 제공하십시오. 예를 들어, 이 요소가 포함된 plugin-cfg.xml 파일의 부분은 다음 코드와 비슷할 수 있습니다.
<Transport Hostname="192.168.1.2" Port="9443" Protocol="HTTPS"> <Property Name="keyring" value="c:/WebSphere/AppServer/keys/keyring.kdb"/> <Property Name="stashfile" value="c:/WebSphere/AppServer/keys/keyring.sth"/> <Property Name="password" value="WebAS"/>
- Name
정의 중인 특성의 이름을 지정합니다. 전송에서 인식하는 지원되는 이름은 keyring, stashfile 및 password입니다.
각각의 특성에 대해 정확하게 하나의 속성을 지정하십시오.문제점 방지: z/OS용 WebSphere HTTP 플러그인에 대해 지정할 수 있는 유일한 이름은 password입니다. keyring 및 stashfile을 지정하는 경우 이들 이름은 무시됩니다.gotcha
- 값
정의 중인 특성의 값을 지정합니다. 각각의 특성에 대해 정확하게 하나의 속성을 지정하십시오.
- Name
- ServerIOTimeout
플러그인이 애플리케이션 서버에 요청을 전송하고 애플리케이션 서버로부터 응답을 읽는 데 필요한 제한시간 값(초)을 설정할 수 있게 합니다.
ServerIOTimeout 속성을 양수 값으로 설정하면 제한시간 초과가 발생할 때 서버에 접속하려는 이 시도가 종료됩니다. 하지만 서버가 사용 불가능으로 간주되지는 않으므로 향후 요청은 사용 불가능 제한시간 초과가 발생한 서버에 계속 전송됩니다.
ServerIOTimeout 속성을 음수 값으로 설정하면 제한시간 초과가 발생할 때마다 서버는 사용 불가능으로 간주되므로 향후 요청은 제한시간 초과가 발생한 서버에 전송되지 않습니다.
ServerIOTimeout 속성에 대한 값이 설정되지 않은 경우에는 기본적으로 플러그인이 차단된 I/O를 사용하여 애플리케이션 서버에 요청을 기록하고 애플리케이션 서버로부터 응답을 읽으므로 TCP 연결이 제한시간 초과되지 않습니다. 예를 들어, 다음 설정을 지정할 수 있습니다.
<Server Name="server1" ServerIOTimeout=300>
이 상황에서 애플리케이션 서버가 요청에 대한 응답을 중지하면 플러그인은 TCP 연결을 제한시간 초과시키기 전에 300초(5분) 동안 대기합니다. ServerIOTimeout 속성을 합리적인 값으로 설정하면 플러그인이 연결을 더 빨리 제한시간 초과시키고 가능한 경우 다른 애플리케이션 서버에 요청을 전송합니다.
이 속성에 대한 값을 선택할 때는 애플리케이션 서버가 요청을 처리하는 데 몇 분이 걸릴 수 있다는 점을 기억하십시오. ServerIOTimeout 속성의 값을 너무 낮게 설정하면 플러그인이 클라이언트에 잘못된 서버 오류 응답을 전송할 수 있습니다.
기본값은 900(15분)입니다.
문제점 방지: ServerIOTimeout은 플러그인이 각각의 개별 읽기 또는 쓰기 조작이 리턴할 때까지 대기하는 시간을 제한합니다. ServerIOTimeout은 전체 요청에 대한 제한시간을 나타내지 않습니다.gotcha
ServerIOTimeout 속성을 구성하는 방법에 대한 추가적인 권장사항은 IBM 지원 센터 웹 사이트에서 웹 서버 플러그인 구성 기술 노트를 참조하십시오.
애플리케이션 서버에 대한 일부 요청 및 애플리케이션 서버로부터의 일부 응답 읽기에는 동일한 ServerIOTimeout, ServerIOTimeoutRetry 및 Extended Handshake / 100 Continue 제한시간 규칙이 필요하지 않습니다. 일부 URL은 동일한 방식으로 작동하며 처리된 경우 요청을 더 빨리 제한시간 초과시키고 요청에 대해 일부 서버가 재시도되지 않게 해야 할 수 있습니다. 수정된 ServerIOTimeout, ServerIOTimeoutRetry나 ExtendedHandshake 또는 100-Continue에 대해 단축된 제한시간을 사용하는 특정 URL을 지정할 수 있습니다. 그렇게 수정되지 않은 기타 URL은 Plugin-cfg.xml 파일에서 지정된 값을 계속 사용합니다.
이 수정된 제한시간 처리를 위해 URL을 지정하려면 SetEnvIf 지시문을 사용하여 httpd.conf 파일을 수정하십시오. Plugin-cfg.xml 파일에서 사용 가능한 특성과 마찬가지로 websphere-serveriotimeout과 websphere-serveriotimeoutretry는 모두 동일한 값을 승인할 수 있습니다. WebSphere-shorten-handshake는 "1"로만 설정할 수 있습니다. 이는 플러그인이 ConnectTimeout 값을 ExtendedHandshake 또는 100-Continue 응답에 대한 대기 시간으로 사용하도록 지시합니다. 예를 들어, 다음과 같습니다.SetEnvIf Request_URI "\.jsp$" websphere-serveriotimeout=10 SetEnvIf Request_URI "\.jsp$" websphere-serveriotimeoutretry=-1 SetEnvIf Request_URI "\.jsp$" websphere-shorten-handshake=1
- Name
- wsServerIOTimeout
이 속성은 웹 서버 플러그인과 WebSocket 애플리케이션 사이에서 보류 중인 읽기 및 쓰기 조치의 제한시간 값(초)을 설정합니다. 지정된 값이 초과되면 응답하지 않는 애플리케이션 서버가 보유하는 자원이 해제됩니다.
기본값은 30초입니다.
- wsServerIdleTimeout
이 속성은 웹 서버 플러그인과 WebSocket 애플리케이션 간 연결이 유휴 상태를 유지할 수 있는 제한시간 값(초)을 설정합니다. 지정된 값이 초과되면 애플리케이션 서버가 보유하는 자원이 해제됩니다.
기본값은 900초입니다.
- ClusterAddress
ClusterAddress는 서버 요소의 경우와 동일한 속성 및 요소를 지정할 수 있다는 점에서 서버 요소와 비슷합니다. 차이점은 ServerCluster에서는 이들 속성 및 요소 중 하나만 정의할 수 있다는 점입니다. 플러그인과 애플리케이션 사이에 특정 유형의 로드 밸런서를 이미 가지고 있기 때문에 플러그인이 어떠한 유형의 로드 밸런싱도 수행하지 않게 하려는 경우 ClusterAddress를 사용하십시오.
문제점 방지: ClusterAddress 태그를 포함하는 경우에는 해당 태그에 Name 속성을 포함해야 합니다. 플러그인은 Name 속성을 사용하여 클러스터 주소를 올바른 호스트 및 포트와 연관시킵니다. Name 속성을 지정하지 않으면 플러그인이 동일한 호스트 및 포트를 사용 중인 서버에 대해 지정된 이름을 클러스터 주소에 지정합니다.
gotcha<ClusterAddress Name="MyClusterAddr"> <Transport Hostname="192.168.1.2" Port="9080" Protocol="HTTP"/> <Transport Hostname="192.168.1.2" Port="9443" Protocol="HTTPS"> </ClusterAddress>
선호도가 설정되지 않은 요청이 수신되면 플러그인은 해당 요청을 클러스터 주소로 라우팅합니다(정의된 경우). 선호도가 설정된 경우 플러그인은 클러스터 주소를 완전히 우회하여 복제본에 직접 요청을 라우팅합니다. 서버 클러스터에 대해 클러스터 주소가 정의되지 않은 경우 플러그인은 기본 서버 목록에 있는 서버에서 로드 밸런싱을 수행합니다.
각각의 ServerCluster에 대해 0개 또는 하나의 요소가 있을 수 있습니다.
- PrimaryServers
플러그인이 이 클러스터에 대한 요청을 라우팅하는 서버의 목록을 지정합니다. 기본 서버의 목록이 지정되지 않은 경우 플러그인은 서버 클러스터에 대해 정의된 서버에 요청을 라우팅합니다. 각각의 ServerCluster에 대해 0개 또는 하나의 요소를 지정하십시오.
- BackupServers
기본 서버 목록에 지정된 모든 서버를 사용할 수 없는 경우 요청이 전송되는 서버의 목록을 지정합니다. 플러그인은 백업 서버에서 로드 밸런싱을 수행하지 않지만 목록에 남은 서버가 없을 때까지 또는 요청이 성공적으로 전송되고 애플리케이션 서버로부터 응답이 수신될 때까지 순서대로 목록을 순회합니다. 각각의 ServerCluster에 대해 0개 또는 하나의 요소를 지정하십시오.
VirtualHostGroup
HTTP 호스트 헤더에서 지정되는 가상 호스트 이름의 그룹을 지정합니다. 이 특성을 사용하여 비슷한 유형의 요청을 처리하도록 구성된 가상 호스트 정의를 함께 그룹화하십시오.
다음 예에서는 VirtualHostGroup 요소 및 연관된 요소 및 속성을 보여줍니다.
<VirtualHostGroup Name="Hosts">
<VirtualHost Name="www.x.com"/>
<VirtualHost Name="www.x.com:443"/>
<VirtualHost Name="*:8080"/>
<VirtualHost Name="www.x.com:*"/>
<VirtualHost Name="*:*"/>
</VirtualHostGroup>
- Name
이 가상 호스트 그룹에 사용할 논리 또는 관리 이름을 지정합니다. 각각의 VirtualHostGroup에 대해 정확하게 하나의 속성을 지정하십시오.
- VirtualHost
수신 요청이 WebSphere Application Server에 의해 처리되어야 하는지 판별하는 데 사용되는 가상 또는 실제 시스템에 사용되는 이름을 지정합니다. 이 요소를 사용하여 애플리케이션 서버가 처리해야 하는 요청에 대해 표시되어야 하는 HTTP 호스트 헤더에 있는 호스트 이름을 지정하십시오. 수신 요청에 대해 특정 호스트 이름 및 포트를 지정하거나 호스트 이름, 포트 또는 둘 다에 대해 별표(*)를 지정할 수 있습니다.
각각의 VirtualHostGroup에 대해 하나 이상의 요소가 있을 수 있습니다.
- Name
HTTP 호스트 헤더에서 VirtualHost에 있는 이름과 일치하는 이름을 지정합니다. 각각의 VirtualHost에 대해 정확하게 하나의 속성을 지정하십시오.
값은 호스트 이름 또는 IP 주소 및 포트 조합이며 콜론으로 구분됩니다.
요청에 대한 수신 HTTP 호스트 헤더 및 포트를 기반으로 애플리케이션 서버에 요청을 라우팅하도록 플러그인을 구성할 수 있습니다. Name 속성은 해당 조합을 지정합니다.
이 속성에 대해 와일드카드를 사용할 수 있습니다. 승인 가능한 유일한 솔루션은 호스트 이름, 포트 또는 둘 다에 별표(*)를 사용하는 것입니다. 둘 다에 별표를 사용하는 것은 모든 요청이 이 규칙과 일치함을 의미합니다. 정의에서 포트가 지정되지 않은 경우에는 기본 HTTP 포트인 80을 사용한다고 가정합니다.
- Name
UriGroup
HTTP 요청 행에서 지정되는 URI 그룹을 지정하십시오. 동일한 애플리케이션 서버가 해당 URI를 처리할 수 있어야 합니다. 라우트에서는 수신 URI와 그룹의 URI를 비교하여 애플리케이션 서버가 요청을 처리하는지 판별합니다.
다음 예에서는 UriGroup 요소 및 연관된 요소 및 속성을 보여줍니다.
<UriGroup Name="Uris">
<Uri Name="/servlet/snoop/">
<Uri Name="/webapp/*/">
<Uri Name="*.jsp/">
</UriGroup>
- Name
이 URI 그룹에 대해 논리 또는 관리 이름을 지정합니다. 각각의 UriGroup에 대해 정확하게 하나의 속성을 지정하십시오.
- Uri
WebSphere Application Server가 서비스를 제공하는 자원의 가상 경로를 지정합니다. 각각의 URI는 애플리케이션 서버가 처리해야 하는 수신 URL을 지정합니다. 이 정의에서 와일드카드를 사용할 수 있습니다. 각각의 UriGroup에 대해 하나 이상의 속성이 있을 수 있습니다.
- Name
이 URI와 일치시킬 HTTP 요청 행에서 지정할 실제 문자열을 지정합니다. URI 정의에서 와일드카드를 사용할 수 있습니다. WebSphere Application Server에서 처리할 *.jsp 또는 /servlet/* 등의 규칙을 지정할 수 있습니다. 애플리케이션을 어셈블하는 경우 파일 제공 사용을 지정하면 명시적인 서블릿 맵핑에 관계없이 웹 애플리케이션에 대해 와일드카드 URI만 생성됩니다. 클래스 이름별 서블릿 제공을 지정하면 다음의 URI가 생성됩니다. <Uri Name="Web_application_URI/servlet/*">
각각의 URI에 대해 정확하게 하나의 속성이 있습니다.
- AffinityCookie
플러그인이 인바운드 요청에 세션 선호도가 포함되어 있는지 판별할 때 사용하는 쿠키의 이름을 지정합니다. 기본값은 JSESSIONID입니다.
추가적인 세션 선호도 정보는 CloneID 속성에 대한 설명을 참조하십시오.
각각의 URI에 대해 0개 또는 하나의 속성이 있을 수 있습니다.
- AffinityURLIdentifier
플러그인이 인바운드 요청에 특정 복제본에 대한 URL에서 지정된 선호도가 포함되어 있는지 판별할 때 ID의 이름을 지정합니다. 기본값은 jsessionid입니다.
추가적인 세션 선호도 정보는 CloneID 속성에 대한 설명을 참조하십시오.
각각의 URI에 대해 0개 또는 하나의 속성이 있을 수 있습니다.
- Name
라우트
플러그인이 WebSphere Application Server가 수신 요청을 처리해야 하는지 판별하는 데 사용하는 요청 라우팅 규칙을 지정합니다.
라우트 정의는 플러그인 구성의 중심 요소입니다. 라우트 정의는 요청의 특정 특성을 기반으로 플러그인이 요청을 처리하는 방식을 지정합니다. 라우트 정의에는 다른 주요 요소(필수 ServerCluster와 VirtualHostGroup, UriGroup 또는 둘 다)가 포함되어 있습니다.
라우트에 대해 VirtualHostGroup 및 UriGroup에서 정의되는 정보를 사용하여 플러그인은 웹 서버에 대한 수신 요청이 이 라우트에서 정의되는 ServerCluster 요소에 전송되는지를 판별합니다.
이 요소에 대한 다음 예를 참조하십시오.
<Route VirtualHostGroup="Hosts" UriGroup="Uris" ServerCluster="servers"/>
- VirtualHostGroup
라우트 판별에 사용되는 가상 호스트 그룹을 지정합니다. 수신 호스트 헤더 및 서버 포트를 일치시켜 애플리케이션 서버가 이 요청을 처리하는지 판별합니다.
라우트 정의에서 이 특성을 생략할 수 있습니다. 이 특성이 없으면 라우트 판별의 가상 호스트 일치 부분 동안 모든 요청이 일치됩니다.
각각의 라우트에 대해 0개 또는 하나의 속성이 있을 수 있습니다.
- UriGroup
라우트 판별에 사용할 URI 그룹을 지정합니다. 각각의 라우트에 대해 0개 또는 하나의 그룹을 선택하십시오. 요청에 대한 수신 URI는 이 그룹에서 정의된 URI에 대해 일치되어 애플리케이션 서버가 이 요청을 처리하는지 여부를 판별합니다.
라우트 정의에서 이 특성을 생략할 수 있습니다. 이 특성이 없으면 라우트 판별의 URI 일치 부분 동안 모든 요청이 일치됩니다.
- ServerCluster
라우트와 일치하는 요청을 수신하는 클러스터를 지정합니다. 각각의 라우트에 대해 정확하게 하나의 클러스터를 선택하십시오.
클러스터는 이 요청을 처리하는 데 사용됩니다. 이 라우트에 대해 URI와 가상 호스트가 모두 성공한 경우에는 이 클러스터에서 정의되는 서버 중 하나에 요청이 전송됩니다.
RequestMetrics
요청 메트릭이 사용으로 설정되었는지 여부와 요청 메트릭이 사용으로 설정되었을 때 IP(Internet Protocol) 및 URI(Uniform Resource Identifier) 필터를 기반으로 요청을 필터링하는 방법을 판별하는 데 사용됩니다.
이 요소에 대한 다음 예를 참조하십시오.
<RequestMetrics armEnabled="false" loggingEnabled="true"
rmEnabled="false" traceLevel="PERF_DEBUG">
- armEnabled
플러그인에서 ARM 4 에이전트가 사용으로 설정되는지 여부를 지정합니다. true로 설정된 경우에는 ARM 4 에이전트가 호출됩니다.
문제점 방지: SunOne(iPlanet) 웹 서버의 경우 ARM 4 지원을 사용하려면 obj.conf 파일에 다음의 지시문을 포함해야 합니다.
이 지시문이 포함되지 않으면 arm_stop 프로시저가 호출되지 않습니다.gotchaAddLog fn="as_term"
RequestMetrics에 대해 0개 또는 하나의 속성을 선택하십시오.
- loggingEnabled
플러그인에서 요청 메트릭 로깅이 사용으로 설정되는지 여부를 지정합니다. true로 설정된 경우 traceLevel이 NONE으로 설정되지 않으면 요청 응답 시간 및 기타 요청 정보가 로그됩니다. false로 설정된 경우에는 요청 로깅이 수행되지 않습니다. loggingEnabled의 값은 시스템 특성 com.ibm.websphere.pmi.reqmetrics.loggingEnabled에 대해 지정된 값에 따라 다릅니다. 이 시스템 특성이 없으면 loggingEnable이 true로 설정됩니다. RequestMetrics에 대해 정확하게 하나의 속성을 지정하십시오.
- rmEnabled
플러그인에서 요청 메트릭이 사용으로 설정되는지 여부를 지정합니다. true로 설정된 경우 플러그인(요청 메트릭)은 필터를 조사하고 요청 추적 레코드를 플러그인 로그 파일에 로그합니다. 이 조치는 요청이 필터를 통과하는 경우 수행됩니다. 이 속성이 false로 설정되면 나머지 요청 메트릭 속성이 무시됩니다. RequestMetrics에 대해 정확하게 하나의 속성을 지정하십시오.
- traceLevel
rmEnabled 속성이 true로 설정되었을 때 로그되는 정보의 양을 표시합니다. 이 속성이 NONE으로 설정되면 요청 로깅이 수행되지 않습니다. 이 속성이 NONE으로 설정되지 않은 경우 loggingEnabled가 true로 설정되면 요청이 수행될 때 요청 응답 시간 및 기타 요청 정보가 로그됩니다. RequestMetrics에 대해 정확하게 하나의 속성을 지정하십시오.
- filters
rmEnabled가 true로 설정된 경우에는 필터가 추적되는 요청을 제어합니다. RequestMetrics에 대해 0개, 하나 또는 두 개의 속성을 지정하십시오.
- enable
enable이 true로 설정된 경우에는 필터의 유형이 작동되며 요청이 필터를 통과해야 합니다. 각각의 필터에 대해 정확하게 하나의 속성을 지정하십시오.
- type
SOURCE_IP(예: 클라이언트 IP 주소)와 URI라는 두 가지 유형의 필터가 있습니다. SOURCE_IP 필터 유형의 경우 요청은 알려진 IP 주소를 기반으로 필터링됩니다. 별표(*)를 사용하여 IP 주소에 대해 마스크를 지정할 수 있습니다. 별표가 사용되는 경우 별표는 항상 마스크의 마지막 문자여야 합니다(예: 127.0.0.*, 127.0.*, 127*). 성능상의 이유로 인해 패턴은 필터에서 별표가 발견되거나 불일치가 발생하거나 필터가 정확한 일치로 발견될 때까지 문자별로 일치됩니다.
URI 필터 유형의 경우 요청은 수신 HTTP 요청의 URI를 기반으로 필터링됩니다. 패턴 일치에 대한 규칙은 일치하는 SOURCE_IP 주소 필터와 동일합니다.
URI와 클라이언트 IP 주소 필터가 모두 사용으로 설정된 경우에는 요청 메트릭에 두 필터 유형 모두에 대한 일치가 필요합니다. 둘 다 사용으로 설정되지 않은 경우에는 모든 요청이 일치로 간주됩니다.
각각의 필터에 대해 정확하게 하나의 속성이 있습니다.
- filterValues
자세한 필터 정보를 지정합니다. 각각의 필터에 대해 하나 이상의 속성을 지정하십시오.
- value
해당 필터 유형에 대한 필터 값을 지정합니다. 이 값은 클라이언트 IP 주소 또는 URI일 수 있습니다. 각각의 filterValue에 대해 정확하게 하나의 속성을 지정하십시오.
- value
- enable