내용 목차
ReverseProxy를 통한 WebSocket 기능을 지원한다.
*REVERSE_PROXY.MaxWebSocketConnections : reverse proxy로 WebSocket을 사용하는 경우 최대 WebSocket connection 수 (기본값: 0 unlimit)
*REVERSE_PROXY.WebSocketSessionTimeout : reverse proxy로 WebSocket을 사용하는 경우 WebSocket connection에 대한 session timeout
[예 5.1] WebSocket Reqeust 및 Response
*Reqeust GET /websocketTest/websocket/echoAnnotation HTTP/1.1 Host: localhost User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ko-kr,ko;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Sec-WebSocket-Version: 13 Origin: http://localhost Sec-WebSocket-Key: 4EOlZZPEjKYm79sPIHsvGA== Cookie: W2BRID=d2Vic29ja2V0X2Nvbmc=.d2Vic29ja2V0MQ== Connection: keep-alive, Upgrade Upgrade: websocket
*Response HTTP/1.1 101 Switching Protocols Upgrade: websocket Date: Thu, 21 Aug 2014 07:31:58 GMT Connection: upgrade Sec-WebSocket-Accept: 7pqtUendiSSfr2rRboExMm+HzyY=
wbssl(OpenSSL)의 버전을 1.0.1h에서 1.0.1i로 업그레이드하였다.
wbssl(OpenSSL) 업그레이드를 통해 OpenSSL 출력 함수에서 발생하는 메모리 정보 노출 취약점(CVE-2014-3508) 외에 8가지의 버그(CVE-2014-5139, CVE-2014-3509, CVE-2014-3505, CVE-2014-3506, CVE-2014-3507, CVE-2014-3510, CVE-2014-3511, CVE-2014-3512)를 해결하도록 하였다.
URL을 매칭할 때 Regular Expression을 추가하여 다양한 조건을 설정할 수 있게 하였다.
다음은 RegExp을 사용하는 예이다.
예1) jsp, do 확장자 요청에 대해서만 reverse proxy가 적용되는 설정
*REVERSE_PROXY.RegExp="\.(jsp|do)$"
예2) html 확장자 요청은 reverse proxy가 적용되지 않는 설정
*REVERSE_PROXY.RegExp="!\.html$"
관련이슈 : IMS-85691
URL을 매칭할 때 Regular Expression을 추가하여 다양한 조건을 설정할 수 있게 하였다.
관련이슈 : IMS-82319
CacheRefresh를 실행할 때 (명령어 : cr) 원하는 URL만 삭제 가능한 옵션을 추가하였다.
wsadmin에서 cr -u url_pattern 형식으로 명령을 하면 된다.
다음은 cr -u 사용하는 예이다.
예1)
wsadmin> cr -u */*.gif 명령시.. 삭제되는 cache item - www.tmax.co.kr/logo1.gif - tims.tmax.co.kr/logo2.gif - technet.tmax.co.kr/logo3.gif
예2)
wsadmin> cr -u */logo*.* 명령시.. 삭제되는 cache item - www.tmax.co.kr/logo.html - www.tmax.co.kr/logo1.gif - tims.tmax.co.kr/logo2.gif - technet.tmax.co.kr/logo3.gif
관련이슈 : IMS-85281
wsadmin의 st -p와 st -v에 Request Count를 추가하였으며, st -p에 Server Connection Time 정보를 추가하였다.
Reqeust를 서버(JSV 등)에 보내기 전에 Connection을 확인의 용도로 Ping을 보내는 기능을 추가하였다.
*SERVER.RequestLevelPing: default N (Y/N) *SERVER.RequestLevelPingTimeout: default 3(sec) *SERVER.RequestLevelPingRetryCount: default 0 (retry count)
관련이슈 : IMS-84621
SetHostHeader를 설정할 때 설정된 값이 Host Header에 저장되어 Internal Server로 전달한다.
$ByPassHostHeader를 설정할 때 Reqeust에 있는 Host Header를 그대로 Internal Server로 전달한다.
관련이슈 : IMS-86843
별도의 key를 Set-Cookie에 추가하여 REVERSE_PROXY_GROUP를 사용할 때 Routing을 하는 기능을 추가하였다.
*REVERSE_PROXY_GROUP.WBRoutingCookieKey = "W2BRID"로 설정하면 Reverse Proxyg Group을 사용하여 여러 개의 WAS를 연동하는 경우 Cookie에 "W2BRID"를 사용하여 WebtoB 내부적인 Routing에 사용하게 된다.
[예 5.2] WBRoutingCookieKey 사용예
*REVERSE_PROXY_GROUP rproxyG1 PathPrefix = "/", ServerPathPrefix = "/", WBRoutingCookieKey = "W2BRID" *REVERSE_PROXY rproxy2 ReverseProxyGroupName = "rpg", ServerAddress = "192.168.10.153:8001" rproxy3 ReverseProxyGroupName = "rpg", ServerAddress = "192.168.10.153:8002"
클라이언트 요청을 받아 rproxy2에서 처리된 응답에 대해 아래와 같이 Set-Cookie 헤더에 추가한다.
Set-Cookie: W2BRID=cnByb3h5RzE=.cnByb3h5Mg==
ReverseProxyGroupName.ReverseProxyName을 각각 base64 encoding된 값으로 변경하여 사용한다.
ReverseProxyName에 대해 base64 encoding된 값은 wsadmin> cfg -rp 에서 StickySessionRoutingId 항목으로 확인이 가능하다.
Set-Cookie에 매번 추가하는 것은 아니며 Request Header에 W2BRID가 없거나, 또는 있지만 다른 reverse_proxy로 routing된 경우 추가한다.
클라이언트 요청 중 Cookie header에 W2BRID를 파싱하여 rproxy2 또는 rproxy3으로 요청을 forwarding하게 된다.
관련이슈 : IMS-86843
php-cgi를 사용랄 경우 실행 옵션을 적용할 수 있는 기능을 추가하였다.
다음과 같이 설정해서 php.ini 파일을 지정할 수 있다.
*SVRGROUP.ScriptArgs="-c /php_conf/php.ini"
관련이슈 : IMS-87610
WebtoB가 지원하는 HTTP/0.9, HTTP/1.0, HTTP/1.1 이외의 버전이 올 경우 "505 HTTP Version Not Supported."로 응답하도록 변경하였다.
관련이슈 : IMS-85138
HTH 최대 설정값을 20에서 100개로 확장하였다.
관련이슈 : IMS-84699
서버 프로세스가 기동 후 WSM과 connection을 실패할 경우 reconnect를 하지 않는 것을 최대 20번 시도하도록 변경하였다.
관련이슈 : IMS-86838
*SSL(PROXY_SSL).RequiredCiphers의 최대 길이를 기존 255자에서 1023자로 확장하였다.
관련이슈 : IMS-86485
OPTIONS Method 요청을 처리할 때 JEUS에서 처리한 응답을 WebtoB에서 처리하여 응답하는 문제를 수정하였다. 해당 요청의 경우 JEUS로 Reqeust를 전달하여 JEUS에서 처리하도록 수정하였다.
WebtoB 4.1 SP7 Fix#1 이하 버전에서 발생하는 오류 현상이다.
관련이슈 : IMS-84635
JSV가 BRUN 상태이며 JEUS가 해당 connection을 reconnect할 경우 HTH CPU 사용량이 100%까지 증가하는 오류를 수정하였다.
WebtoB 4.1 SP6 Fix#0 이상 WebtoB 4.1 SP7 Fix#1 이하 버전에서 발생하는 오류 현상이다.
관련이슈 : IMS-85854
suspend 명령 후 JEUS에서 처리하는 요청을 보낼 경우 read-timeout 설정값이 지난 후 요청이 JEUS에서 처리되는 문제를 수정하였다.
WebtoB 4.1 SP7 Fix#1 이하 버전에서 발생하는 오류 현상이다.
관련이슈 : IMS-86828
Connection Header의 Value를 1개의 값만 처리하는 오류를 수정하였다.
WebtoB 4.1 SP7 Fix#1 이하 버전에서 발생하는 오류 현상이다.
BRUN 상태에서 클라이언트가 연결을 끊어도 BRUN인 상태로 Hang이 걸리는 오류를 수정하였다.
WebtoB 4.1 SP6 Fix#0 이상 WebtoB 4.1 SP7 Fix#1 이하 버전에서 발생하는 오류 현상이다.
관련이슈 : IMS-86997
POST 데이터가 JEUS(또는 ReverseProxy)로 보내는 도중 응답을 받을 경우 클라이언트에 전달하지 않고 연결을 끊는 오류를 수정하였다.
WebtoB 4.1 SP7 Fix#1 이하 버전에서 발생하는 오류 현상이다.
관련이슈 : IMS-87214
특정 클라이언트가 BRUN 상태에서 종료된 경우 event 처리가 잘못되어 다른 클라이언트가 응답을 받아갈 수 없는 상태가 되어 "Client Timeout has expired."가 발생하는 오류를 수정하였다.
WebtoB 4.1 SP7 Fix#1 버전에서 발생하는 오류 현상이다.
관련이슈 : IMS-87614