티스토리 뷰
본 포스팅은 WebtoB 캐싱관련 테스트를 다루어 보겠습니다.
기능 | 기본값 | 설명 |
CacheKey | HOST_URI | 캐싱하기 위한 Key 값을 생성할 때 사용할 값 설정 4.1.5.0 이상 REAL_PATH 지원 |
CacheEntry | 128 | HTH 캐시(Cache)의 Hash 테이블 키의 크기를 설정 |
MaxCacheMemorySize | 100Mbyte | HTH 프로세스가 캐시를 위해 사용하는 최대 메모리 사이즈를 설정 4.1.5.0 이 후 버전에서 적용 됨 |
CacheMaxFileSize | 4096byte | 캐시할 수 있는 응답(Response Header + Response Body) 하나의 최대 사이즈 설정 4.1.4.0 이전 버전은 HttpOutBufSize보다 작은 파일 Cache 함 |
CacheRefreshHtml | 3600초 | 캐시된 응답 중 "Content-Type"이 "text/html"인 응답에 대한 유효시간 설정(SVRTYPE이 HTML 인 경우) |
CacheRefreshImage | 3600초 | 캐시된 응답 중 "Content-Type"이 "text/html"이 아닌 응답에 대한 유효시간 설정(SVRTYPE이 HTML인 경우). |
CacheRefreshJsv | 3600초 | JEUS로부터 받은 응답을 캐시하는 경우 응답 유효시간을 계산하기 위한 설정, 4.1.5.0 이 후 버전에서 적용 됨 |
CacheRefreshRproxy | 3600초 | Reverse Proxy로 처리된 응답을 캐시는 경우 유효시간을 계산하기 위한 설정, 4.1.5.0 이 후 버전에서 적용 됨 |
http.m 설정
*NODE … CacheKey = HOST_URI, #(default) CacheEntry(ce) = 1024, MaxCacheMemorySize(mcms) = 100, # (MByte) CacheMaxFileSize(cmfs) = 4096, # (Byte) CacheRefreshImage = 3600, # (sec.) CacheRefreshHtml = 3600, # (sec.) CacheRefreshDir = 3600, # (sec.) CacheRefreshJsv = 3600, # (sec.) CacheRefreshRproxy = 3600, # (sec.) … |
3. WebtoB 캐시 관리
캐싱 된 정보 삭제 (wsadm) : cr -a
cache ( DIR HTML IMAGE ) is refreshed
캐시에 저장된 응답 정보 출력 (wsadm): cachelist
Cache contents files are created in /tmax/WebtoB/log/cachelist/. Please check the directory.
특정 확장자 캐시 설정
*EXT
jpg MimeType = "image/gif", SvrType=HTML, Options="-cache"
4. Conditional GET 발생 시점
1) 브라우저를 통해 요청 -> HTTP 헤더에 파일의 마지막 수정시간(Last-Modified)을 포함하여 Client에 응답
2) 재 요청 시 서버로부터 받은 파일의 If-Modified-Since을 포함하여 Conditional GET 요청
->수정시간 비교 후 같을 경우 상태코드 304를 HTTP 헤더에 포함하여 Client에 응답
5. WebtoB 캐싱 테스트
테스트 방법
$ telnet 127.0.0.1 80 GET /test.html HTTP/1.1 host:127.0.0.1 |
파일 수정시간(Last-Modified) 변화 시 응답결과
a. "If-Modified-Since"값이 "Last-Modified" 보다 작은 값 요청
$ telnet 127.0.0.1 80 GET /test.html HTTP/1.1 host:127.0.0.1 If-Modified-Since: Wed, 30 Jul 2001 20:43:33 GMT |
HTTP/1.1 200 OK Date: Wed, 30 Jul 2014 14:42:53 GMT Last-Modified: Wed, 30 Jul 2014 14:40:41 GMT Accept-Ranges: bytes Content-Length: 46 Content-Type: text/html |
결과: 변경사항이 있음으로 판단하고 WebtoB 캐시 응답 |
b. "If-Modified-Since"값이 "Last-Modified" 보다 큰 값 요청
$ telnet 127.0.0.1 80 GET /test.html HTTP/1.1 host:127.0.0.1 If-Modified-Since: Wed, 30 Jul 2025 14:40:41 GMT |
HTTP/1.1 304 Not Modified Date: Wed, 30 Jul 2014 14:42:53 GMT |
결과: 변경사항 없음으로 판단하고 브라우저 캐시 응답 |
6. ForceCacheModificationCheck 옵션 적용결과
test.html파일 내용 수정 후 “Test Page for WebtoB Installation on Web Site” -> “Test Page for WebtoB Installation on Web Site, Modify !!” |
Conditional GET 요청이 아닌 경우 $ telnet 127.0.0.1 80 GET /test.html HTTP/1.1 host:127.0.0.1 “Test Page for WebtoB Installation on Web Site”
Conditional GET 요청일 경우 GET /test.html HTTP/1.1 host:127.0.0.1 If-Modified-Since: Wed, 30 Jul 2014 20:43:33 GMT Test Page for WebtoB Installation on Web Site, Modify !! |
결과: 최초 요청에는 WebtoB 캐시 변경사항을 확인 하지 못하였고 재 요청 시 Conditional GET의해 수정사항 반영 됨, WebtoB Cache 갱신 시점은 Conditional GET 요청임을 알 수 있음 |
b. ForceCacheModificationCheck = Y
test.html파일 내용 수정 후 “Test Page for WebtoB Installation on Web Site” -> “Test Page for WebtoB Installation on Web Site, Modify !!” |
Conditional GET 요청이 아닌 경우 $ telnet 127.0.0.1 80 GET /test.html HTTP/1.1 host:127.0.0.1 Test Page for WebtoB Installation on Web Site, Modify !!
Conditional GET 요청일 경우 GET /test.html HTTP/1.1 host:127.0.0.1 If-Modified-Since: Wed, 30 Jul 2014 20:43:33 GMT Test Page for WebtoB Installation on Web Site, Modify !! |
결과: 모든 요청에서 WebtoB 캐시 변경사항을 확인함. |
Cache를 활용하면 변경되지 않은 정적 파일을 캐싱하여 보다 성능상 이점을 가져올 수 있다. 다만 너무 많은 파일과 사이즈를 메모리에 담게 되면 장애를 유발할 수 있어 사이즈 제한/전체 Entry 공간 등 적절한 설정의 튜닝이 필요할 것이다.
'④ 미들웨어 > ⓦ WebtoB' 카테고리의 다른 글
[WebtoB] Fast CGI 설정 및 예제 (0) | 2018.08.06 |
---|---|
[WebtoB] URLRewrite 설정 가이드 (1) | 2018.07.11 |
[WebtoB] 로드밸런싱 테스트 (0) | 2018.07.05 |
[WebtoB] ReverseProxy 로그밸런싱 처리 방법 (0) | 2018.07.04 |
[Web Server] SSL 설정 가이드 (0) | 2018.06.29 |
- Total
- Today
- Yesterday
- apache
- 마이크로서비스
- openstack token issue
- TA
- webtob
- Da
- OpenStack
- Docker
- SWA
- 오픈스택
- node.js
- 쿠버네티스
- wildfly
- git
- 아키텍처
- JEUS6
- SA
- JEUS7
- jeus
- aa
- k8s
- API Gateway
- aws
- nodejs
- 마이크로서비스 아키텍처
- Architecture
- MSA
- openstack tenant
- kubernetes
- JBoss
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |