ACCESS / DENY 설정

Client에서 접속을 시도할 때, 특정 IP address 나 newtork/netmask 들을 기준으로 요청에 대한 ACCESS/DENY를 설정할 수 있다.

    • 요청 허용과 제한이 적용되는 순서 설정
    • ACCESS 절은 DIRECTORY/URI/EXT/TCPGW 절에 적용될 수 있으며, 각각에서 정의한 리소스를 허용 또는 제어한다. 

예시

ACCESS 절 추가

#WebtoB
vi http.m

#ACESS절 추가
*ACCESS
#특정 IP만 DENY, 그 외 모든 IP 허용
access1  Order = "allow, deny", Allow = "all"
access2  Order = "deny, allow", Deny = "[IP 1],[IP 2]",Allow = "[IP 1],[", 
access3  Order = "allow, deny", Allow = "211.1.1.0/255.255.255.0"
access4  Order = "deny, allow", Deny = "211.1.1.30"
access5  Order = "allow, deny", Allow = "all",Deny = "211.1.1.30"

ACCESS 절은 Order 옵션의 순서에 따라 설정이 다르게 적용된다.

allow, deny : Method> Allow> AllowIf> Deny> DenyIf 순서로 match 한다.

deny, allow : Method > Deny > DenyIf > Allow > AllowIf 순서로 match 한다.

vi http.m

*ACCESS
access1  Order = "allow, deny", Allow = "all"
access2  Order = "allow, deny", Allow = "211.1.1.10, 211.1.1.20"
access3  Order = "allow, deny", Allow = "211.1.1.0/255.255.255.0"
access4  Order = "deny, allow", Deny = "211.1.1.30"
access5  Order = "allow, deny", Allow = "all",Deny = "211.1.1.30"

 

필수 옵션 ACCESS name = <string> Access 절의 이름을 임의로 정할 수 있다.
선택 옵션 Method = <literal> 적용 할 HTTP 메소드를 설정한다.
MethodException = <literal> 제외 할 HTTP 메소드를 설정한다.  
Order = <literal>    
Default - "Deny,Allow" Allow, AllowIf, Deny, DenyIf, Method가 적용되는 순서를 설정한다 (하단 표 참조)  
Allow = <literal> 요청이 허용되는 IP 주소나 network/netmask들을 설정  
Deny = <literal> 요청이 거절되는 IP 주소나 network/netmask들을 설정  

 


GOTOEXT = Y 설정이 들어가 있는 경우

GOTOEXT = Y 설정이 있는 경우, JEUS를 거치지 않고 바로 WebtoB로 요청을 처리하기 때문에 URI로 요청이 가지 않는다.

이럴 경우, 요청을 받는 해당 vhost에 rewrite 설정을 통하여 특정 IP에 대한 요청을 처리해야 한다.

  • URLRewrite
  • URLRewriteConfig
vi http.m

v_test          DOCROOT="/home/webtob5/webtob/docs/",
                HOSTNAME = "mail.test.com",
                HOSTALIAS = "192.168.40.137",
                PORT = "80",
                ServiceOrder = "uri,ext",
                ERRORDOCUMENT = "403,404,503",
                METHOD = "GET, POST, -HEAD, -OPTIONS",
                #Headers = "gzip,cors_all",
                #Headers ="security,X-XSS,X-Content,strict,X-Download",
                **URLRewrite = Y,
                URLRewriteConfig = "$WEBTOBDIR/config/rewrite.conf",**
                LOGGING = "acc_test",
                ERRORLOG = "err_test"
vi rewrite.conf

RewriteCond %{REQUEST_URI} !error ## 무한 redirect 방지
RewriteCond %{REMOTE_ADDR} ^139.xx.xx.132$ ##특정 ip 
RewriteRule . <https://xxx.go.kr/err/error.html> ##호출 url 페이지

즉, IP가 139.xx.xx.132로 들어오는 요청에 대해 https://xxx.go.kr/err/error.html errorpage로 redirect 시키겠다는 의미이다.

Caching?

캐싱은 이미 로드된 데이터나 계산된 결과값의 복사본을 저장함으로써 처리 속도를 향상시키며,

이후 들어온 요청을 더 빠르게 처리할 수 있다.

 

Web Cache?

Client가 웹 사이트(Web Server)에 접속할 때, 정적 컨텐츠(PNG, JS, CSS 등)을 특정 위치에 저장하여, 웹 사이트 서버에 해당 컨텐츠를 매번 요청하는 것이 아닌, 특정 위치에서 로드함으로써 사이트의 응답시간을 줄이고 서버의 트래픽 감소 효과를 볼 수 있다.


Session VS Cache ?

 

간단히 설명하자면 Session과 Cache의 큰 차이점은 Server의 자원사용 유무다.

Session은 서버의 자원을 사용하지만 Cache는 서버의 자원을 사용하지 않고 웹 사이트에서 처리한다.


 

WebtoB Caching Option

WebtoB는 기본적으로 IMAGE, HTML, DIR Caching을 지원한다.

HTH 프로세서에서 캐싱 관리를 하고 이미지의 개수가 많거나, 사이즈가 큰 경우 Entry 개수를 조정하여 튜닝 할 수 있다.

 

$WEBTOBDIR/config/http.m 파일 내 *NODE 절에 설정한다.

*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.)
기능 기본값 설명
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 이 후 버전에서 적용 됨

WebtoB admin Console에서 Cachelist 조회 및 Cache 삭제 방법

 

Cache 조회

Cache에 저장된 요청을 파일 리스트로 출력하는 기능을 가지고 있다.

 

wsadmin을 접속 후 "cachelist"를 입력하면 파일이 생성된다.

HTH가 다수일 경우 HTH마다 cachelist 파일이 생성된다. 아래의 예의 경우 HTH가 4개이다.

mspark (wsadm) [2023/12/03:16:23:11]: cachelist
Cache contents files are created in /home/webtob5_1/log/cachelist/.
 Please check the directory.


cd /home/webtob5_1/log/cachelist/

ls -al
-rw------- 1 webtob5_1 webtob5_1  461 cachelist-hth-0-20231203-062526.txt
-rw------- 1 webtob5_1 webtob5_1  461 cachelist-hth-1-20231203-062526.txt
-rw------- 1 webtob5_1 webtob5_1  461 cachelist-hth-2-20231203-062526.txt
-rw------- 1 webtob5_1 webtob5_1  461 cachelist-hth-3-20231203-062526.txt

Cache 삭제

캐싱 된 정보 삭제 (wsadm) : cr -a

cache ( DIR HTML IMAGE ) is refreshed

 

Trial License ?

WebtoB 기본 설치시 제공 되는 기한 제한이 없는 라이선스다.

HTH가 1개로 제한되고 Max Client가 5명인 제약이 있다.


Trial License VS Standard License VS Enterprise License

WebtoB 라이선스는 총 3가지로 Trial, Standard, Enterprise로 나뉜다.

 

Trial license은 이전 설명 처럼 WebtoB 기본 설치시 제공되는 라이선스

 

Standard license는 Trial과는 다르게 HTH 1개 이상 사용할 수 있고 WebtoB가 제공하는 대부분의 기능을 사용할 수 있다.

 

Enterprise license는 Standard license 기능에 추가적으로 Reverse Proxy Group절이 사용이 가능하고, WebDAV를 위한 HTTP Method(MKCOL, COPY, MOVE, PORPFIND)를 사용할 수 있다.

 

TechNet에서 발급 받는 DEMO LICENSE는 Enterprise License로 제공되고 기한은 2달 동안 사용이 가능하다.

2달이 지나가면 WebtoB 재기동 시 License Expired라는 에러 메시지가 출력되며 기동이 되지 않으니 주의해야 한다.


Trial License 사용시 주의할 점

엔진 설치시 제공되는 라이선스기 때문에 우선 정식 라이선스도 아닐뿐더러 데모(개발)용 라이선스도 아니기 때문에

많은 제약사항이 있다.

 

Max Client 수가 최대 5명 : 한 Client가 동시에 여러 웹페이지를 호출할 경우 정상적으로 호출되지 않을 가능성이 높다.

 

HTH 1개 제한 : 클라이언트와 서버의 업무처리 프로세스를 중계하는 프로세스로, 서버 프로세스들과의 통신을 통해 데이터의 흐름을 관리하는데 1개로 제한이 되면 다량의 데이터를 관리하기 매우 어렵다.

 

Thread 수 제한 : 웹페이지에 호출되는 파일이 많을 경우 WebtoB에서 전달하는 데이터의 유실이 발생할 수 있다. 

failed to load resource net err_socket_not_connected 라는 오류메시지를 개발자 도구에서 확인할 수 있다.

Trial 라이선스에서는 WebtoB Thread수가 제한이 되어 랜덤으로 파일을 가져오고, 페이지에 호출하기 위해 필요한 파일들을 전부 불러오지 못할 것이다.

 


해결 방법

Trial License는 거의 모든 고객사에서 사용하지 않으며 정식적인 계약을 통해 REAL License를 발급받는게 원칙이다.

 

단순 Test나 개발 용도로 사용하려면 TechNet 회원가입 후 Demo License를 발급받아 License File을 2달마다 한 번씩 교체하는 걸 권장한다.

 

https://technet.tmaxsoft.com/ko/front/main/main.do

 

Technet

효율적인 시스템 관리를 위한 기술 전문 포탈, 테크넷서비스

technet.tmaxsoft.com

 

이슈

 

WebtoB 사용 중 아주 긴 URL 요청이 들어올 경우 414 Request-URI Too Large 오류가 나는 경우가 있다.

WebtoB에서 제한된 최대 길이보다 요청 URL의 길이가 더 길 경우 발생한다.

 


 

원인 분석

 

WebtoB Config 설정 파일인 http.m 파일 내 Node 절의 설정을 확인한다.

wsadmin -C "cfg -n"|grep lrl

[webtob5_1@vm1:/home/webtob5_1/webtob/config]$  wsadmin -C "cfg -n"|grep lrl
         LimitRequestLine(lrl) = 8190,

 

Default로 WebtoB에서 RequestLine은 8190으로 제한하고 있다.

 

LimitRequestLine

 

만일 8190 이상의 URL 문자열이 들어올 경우 Node에서 제한하기 때문에 요청이 받아들여지지 않는다. 

 


 

해결 방법

 

http.m 파일 내 *Node 절에 해당 Option을 추가하여 사용자에 맞는 문자열 길이를 설정한다.

 

 

설정 후 WebtoB 컴파일 및 재기동 진행한다.

#WebtoB 컴파일
wscfl -i http.m

#WebtoB 기동 중지
wsdown

#WebtoB 기동
wsboot

기동 후 정상적으로 변경이 되었는 지 Node 절의 설정을 확인한다.

wsadmin -C "cfg -n"|grep lrl

[webtob5_1@mspark:/home/webtob5_1/webtob/config]$ wsadmin -C "cfg -n" | grep lrl
         LimitRequestLine(lrl) = 10000,

 

페이지가 정상 호출 되는 지 확인한다.

해당 포스팅은 특정 URL 요청을 http로 호출하고, 그 외의 호출들은 https로 호출하는 방법을 가이드 합니다.

 

여러가지 방법이 있겠지만, 작성자는 Web Server의 Rewrite를 활용하였습니다.

 

80 PORT 로 들어오는 요청과 443 PORT로 들어오는 요청 각각으로 Rewrite를 사용하였습니다.


[DENY URL]

  • /netzero
  • /test

[호출 Domain]


* VHOST 절 설정

v_mail          DOCROOT="/home/webtob5_1/webtob/docs/resource/",
                HOSTNAME = "192.xxx.xxx.137",
                HOSTALIAS = "mail.test.com",
                PORT = "80",
                ServiceOrder = "uri,ext",
                ERRORDOCUMENT = "403,404,503",
                METHOD = "GET, POST, -HEAD, -OPTIONS",
                URLRewrite = Y,
                URLRewriteConfig = "config/rewrite.conf",
                #Headers = "gzip,cors_all",
                LOGGING = "acc_mail",
                ERRORLOG = "err_mail"

v_mail_ssl      DOCROOT="/home/webtob5_1/webtob/docs/resource/",
                HOSTNAME = "192.xxx.xxx.137",
                HOSTALIAS = "mail.test.com",
                PORT = "443",
                ServiceOrder = "uri,ext",
                ERRORDOCUMENT = "403,404,503",
                METHOD = "GET, POST, -HEAD, -OPTIONS",
                URLRewrite = Y,
                URLRewriteConfig = "config/rewrite_ssl.conf",
                SSLFLAG = Y,
                SSLNAME = "ssl_tmax",
                LOGGING = "acc_mail",
                ERRORLOG = "err_mail"

rewrite.conf 조건

  • Client에서 http 요청이 들어올 경우
  • Client에서 /netzero 의 URL 로 요청이 들어올 경우 rewrite 사용 X
  • Client에서 /test 의 URL 로 요청이 들어올 경우 rewrite 사용 X
  • 그 외 모든 호출은 https로 rewrite
#rewrite.conf

RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !^/netzero/
RewriteCond %{REQUEST_URI} !/test/
RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L]

rewrite_ssl.conf 조건

  • Client에서 직접 https로 /netzero URL을 호출한 경우
  • Client에서 직접 https로 /test URL을 호출한 경우
#rewrite_ssl.conf

RewriteRule /netzero/ http://%{HTTP_HOST}%{REQUEST_URI} [L]
RewriteRule /test/ http://%{HTTP_HOST}%{REQUEST_URI} [L]

Page 호출 테스트

1. http://mail.test.com/test.jsp

2. https://mail.test.com/test.jsp

3. http://mail.test.com/netzero/test.jsp

4. https://mail.test.com/netzero/test.jsp

5. http://mail.test.com/test/test.jsp

6. https://mail.test.com/test/test.jsp

JEUS Encryption (암호화)?

  • JEUS 설정 파일에 기록해야 하는 패스워드값에 대해 암호화를 지원한다.
  • 데이터베이스 패스워드, accounts.xml 계정들의 패스워드의 경우 일반 문자열 대신 암호화된 문자열로 적을 수 있도록 하는 것이다. 
  • 이러한 암호화된 문자열을 사용하기 위해서는 JEUS가 제공하는 암호화 툴(Encryption Tool)을 사용해야 한다.
  • JEUS를 기동시키거나 중지시킬 때, dsboot와 dsdown 명령어를 만들어서 간편하게 서버를 기동시키고 중지시킬 수 있다.
  • 이때, dsboot와 dsdown에 들어가는 명령어에 user 와 password가 필요한데, 직접 작성 (plain) 하여 입력하면 보안취약점에 걸리므로 Encryption 을 통해 암호화하여 작성한다.
  • 암호화하는 방법은 JEUS 버전마다 다르며, 암호화 알고리즘도 다르기 때문에 버전 별 맞는 Encryption 방식을 사용해야 한다.

1. JEUS6

사용 가능한 Encryption Algorism

base64 SHA
DES DESede
AES SEED
Blowfish  
cd $JEUS_HOME/config/`hostname`/security/SYSTEM_DOMAIN

accounts.xml 파일 확인

cd $JEUS_HOME/config/`hostname`/security

security.key  파일 확인

cd $JEUS_HOME/config/`hostname`/security 경로에서 Encryption

encryption [암호화 방식] [암호화 할 패스워드]

ex) encryption aes jeusadmin

result)
[aes] : [jeusadmin] --> [encode:uqU7wAovceZYujA/YXlqQd+f118rPeA7ebtPuutf3b0=]
[aes] : [uqU7wAovceZYujA/YXlqQd+f118rPeA7ebtPuutf3b0=] --> [decode:jeusadmin]

암호화된 패스워드를 복사하여 accounts.xml의 <password></password>에 삽입

ex)
vi accounts.xml
..
#{암호화 알고리즘}{암호화된 패스워드}
<password>{AES}uqU7wAovceZYujA/YXlqQd+f118rPeA7ebtPuutf3b0=</password>
..

2. JEUS7

사용 가능한 Encryption Algorism

base64 DES
DESede AES
SEED Blowfish
SHA SHA-256
SHA512  

 

##JeusEncode File 생성##

cd $JEUS_HOME/bin 이동

encryption [암호화 방식] [id]:[password]

ex) encryption aes administrator:jeusadmin

result)
[aes] : [administrator:jeusadmin] --> [encode:5300CyLYDtzxfTUScQbuj0H0DS357E3XuBlu22k1ovZq92Pf0uPxKWhKw+hhPbGh]
[aes] : [5300CyLYDtzxfTUScQbuj0H0DS357E3XuBlu22k1ovZq92Pf0uPxKWhKw+hhPbGh] --> [decode:administrator:jeusadmin]

$JEUS_HOME/bin 내에 jeusEncode 파일 생성
vi jeusEncode
##jeusEncode 파일 내용
#ex)
 #---------------------------------------------------------------------------------------------------------------------------------
jeus_domain:adminServer 5300CyLYDtzxfTUScQbuj0H0DS357E3XuBlu22k1ovZq92Pf0uPxKWhKw+hhPbGh
jeus_domain:server1 5300CyLYDtzxfTUScQbuj0H0DS357E3XuBlu22k1ovZq92Pf0uPxKWhKw+hhPbGh
localhost:10000 5300CyLYDtzxfTUScQbuj0H0DS357E3XuBlu22k1ovZq92Pf0uPxKWhKw+hhPbGh
localhost:10010 5300CyLYDtzxfTUScQbuj0H0DS357E3XuBlu22k1ovZq92Pf0uPxKWhKw+hhPbGh
#---------------------------------------------------------------------------------------------------------------------------------
##accounts.xml 파일 수정##
cd $JEUS_HOME/config/`hostname`/security/SYSTEM_DOMAIN

accounts.xml 파일 확인

cd $JEUS_HOME/config/`hostname`/security

security.key  파일 확인

cd $JEUS_HOME/config/`hostname`/security 경로에서 Encryption

encryption [암호화 방식] [암호화 할 패스워드]

ex) encryption aes jeusadmin

result)
[aes] : [jeusadmin] --> [encode:uqU7wAovceZYujA/YXlqQd+f118rPeA7ebtPuutf3b0=]
[aes] : [uqU7wAovceZYujA/YXlqQd+f118rPeA7ebtPuutf3b0=] --> [decode:jeusadmin]

암호화된 패스워드를 복사하여 accounts.xml의 <password></password>에 삽입

ex)
vi accounts.xml
..
#{암호화 알고리즘}{암호화된 패스워드}
<password>{AES}uqU7wAovceZYujA/YXlqQd+f118rPeA7ebtPuutf3b0=</password>

3. JEUS8 / 8.5

#명령어로 확인 가능
encrypion -algolist

사용 가능한 Encryption Algorism

base64 DES

base64 DES
DESede SEED
Blowfish SHA -1
SHA 256 SHA 384
SHA 512 AES 128
AES 192 AES 256
##JeusEncode File##

cd $JEUS_HOME/bin 이동

encryption -keypath [security.key 파일 경로] [암호화 방식] [ID 문자 수]:[ID][Passowrd]

ex) encryption -keypath /home/jeus8/jeus8/bin aes 8:wasadminjeusadmin1!

result)
[aes] : [8:wasadminjeusadmin1!] --> [encode:kgquD/cnw/HgCpk/Kl19yN3phNSAiGYFHEtAF/A0CMtOqhCJ+jFOsSybdnluoimQ]
[aes] : [kgquD/cnw/HgCpk/Kl19yN3phNSAiGYFHEtAF/A0CMtOqhCJ+jFOsSybdnluoimQ] --> [decode:8:wasadminjeusadmin1!]

$JEUS_HOME/bin 내에 jeusEncode 파일 생성
vi jeusEncode
##jeusEncode 파일 내용
#ex)
 #---------------------------------------------------------------------------------------------------------------------------------
jeus_domain:wasadmin kgquD/cnw/HgCpk/Kl19yN3phNSAiGYFHEtAF/A0CMtOqhCJ+jFOsSybdnluoimQ
#---------------------------------------------------------------------------------------------------------------------------------
##accounts.xml 수정##

cd ${JEUS_HOME}/domains/${DOMAIN_NAME}/config/security/SYSTEM_DOMAIN

accounts.xml 파일 확인

cd ${JEUS_HOME}/domains/${DOMAIN_NAME}/config/security

security.key  파일 확인

cd ${JEUS_HOME}/domains/${DOMAIN_NAME}/config/security 경로에서 Encryption

encryption -keypath [security.key 파일 경로] [암호화 방식] [Passowrd]

ex) encryption -keypath ./ aes jeusadmin1!

result)
[aes] : [jeusadmin1!] --> [encode:blSCRdxhUXyEEs6JnnbMlajckjpJzQWzsPQL+Oar7mY=]
[aes] : [blSCRdxhUXyEEs6JnnbMlajckjpJzQWzsPQL+Oar7mY=] --> [decode:jeusadmin1!]

암호화된 패스워드를 복사하여 accounts.xml의 <password></password>에 삽입

ex)
vi accounts.xml
..
#{암호화 알고리즘}{암호화된 패스워드}
<password>{AES}blSCRdxhUXyEEs6JnnbMlajckjpJzQWzsPQL+Oar7mY=</password>

 

'MiddleWare > JEUS' 카테고리의 다른 글

[JEUS] Unsupported major.minor version xx.0  (0) 2023.12.05
[JEUS] JEUS 버전 별 SameSite 설정  (0) 2023.11.06
[JEUS] JEUS Log 경로 변경 방법  (0) 2023.05.09
[JEUS] AdminServer SHUTDOWN 현상  (0) 2023.05.03
[JEUS] Jeus Scheduler 설정  (0) 2023.03.30

https://pushstonez.tistory.com/13

 

[WebtoB] X-Forwarded-For(XFF) 설정

X-Forwarded-For(XFF) 란? XFF는 Http Header 중 하나로 HTTP Server에 요청한 Client의 IP를 식별하기 위한 표준 웹서버나 WAS 앞에 L4 같은 로드 밸런서나 Proxy Server, Caching Server 등의 장비가 있을 경우, 웹서버는 P

pushstonez.tistory.com

WebtoB의 X-Forwarded-For 설정을 마친 후 다중 IP를 사용하여 테스트를 진행한다.


 0. Jmeter?

Apache JMeter는 서버가 제공하는 성능 및 부하를 측정할 수 있는 테스트 도구다.

JMeter는 순수 Java 애플리케이션 오픈소스이며 서버나 네트워크 또는 개체에 대해 과부하를 시뮬레이션하여 강도를 테스트하거나 다양한 부하 유형에서 전체 성능을 분석하는 데 사용할 수 있다.


1. Jmeter 설치

1. https://jmeter.apache.org/ 에 접속한다.

 

Apache JMeter - Apache JMeter™

Apache JMeter™ The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to oth

jmeter.apache.org

2. Download → Download Releases 를 선택한다.

3. Binaries -> jmeter-*.zip 파일을 다운로드 받는다.

4.적당한 위치에 압축을 해제 한 후, bin 디렉토리 내 jmeter.bat 파일을 실행한다.

5. Apache Jmeter 창이 제대로 떴다면 설치 완료.


2. Jmeter 설정

1. Thread Group 생성 및 설정

Thread Group은 하나의 Test Case 이다.

(마우스 우클릭) Test Plan → Add → Threads → Thread Group 선택

Thread Group 생성
Thread Group 설정

  • Number of Threads : Thread 생성 수 (test: 10)
  • Ramp-up period : Thread를 Ramp-up preiod 시간 만큼 실행 (test: 1)
  • Loop Count : Thread의 반복 횟수 (test: 30)

2. HTTP Request 생성 및 설정

(마우스 우클릭) Thread Group → Add → Sampler → Htto Request 선택

HTTP Requset 생성

BASIC 과 Advanced 탭을 선택하여 설정한다.

HTTP Request 설정


BASIC

  • Server Name or IP : 접속할 WEB SERVER IP 또는 Domain을 입력한다. (test: WEB Server IP)
  • Port Number : 서비스 Open 된 Port를 입력한다.  (test: 80)

Advanced

  • Implementation : X-Forwarded-For 설정을 위해 HttpClient4 로 변경한다.

3. CSV Data Set Config 생성 및 설정

(마우스 우클릭) Test Plan → Add → Config Element→ CSV Data Set Config 선택

CSV Data Set Config 생성

  • Filename : 다중 IP가 설정되어 있는 파일을 선택해준다. (절대경로)

ip_list 파일 내용

  • Variable Names : HTTP Header 설정에서 가져올 변수 명을 설정한다. (test: IP_LIST)

4. HTTP Header Manager 생성 및 설정

(마우스 우클릭) Http Request → Add → Config Element→ HTTP Header Manager 선택

HTTP Header Manager 생성
HTTP Header Manager 설정

  • Headers Stored in the Header Manager : 요청과 함께 전달될 헤더 필드 목록 (Name : X-Forwarded-For , Value : ${IP_LIST}

모든 설정을 완료 후 하단의 Save 버튼을 통해 설정 값을 저장한다.


3. Test

1. WebtoB 기동

 

2. Jmeter 실행

Jmeter 상단의 실행 버튼을 통해 JMeter 테스트를 시작한다.

 

3. Access 로그 모니터링

tail -F {accesslog name}

ip_list에 설정한 IP 들의 요청을 확인할 수 있다.

WEBADMIN PAGE

Domain → Domain Log Home 경로 변경

Domain Log Home 경로 변경 시 DAS 및 MS Container 모두 재기동 필요

DAS 중지 시 컨테이너 및 서비스 영향 없음

→ AdminPage 및 DSA 접근 불가

컨테이너 중지 시 서비스 영향

환경변수 jlog Alias 경로 변경

gclog 로그 경로 변경

MS Container 별 jvm option 중 gclog 경로 변경 필요

dump 로그, 경로 변경

MS Container 별 jvm option 중 dump경로 변경 필요

launcher 로그 경로 변경

/home/jeus8_1/jeus8_5/bin/jeus.properties

-Djeus.launcher.log.home=[변경할 로그 경로]/launcher/

nodemanager 로그 경로 변경

/home/jeus8_1/jeus8_5/nodemanager/jeusnm.xml

<logFileName>/home/jeus8_1/jeus8_5/logs/nodeManager/JeusNodeManager.log</logFileName>

+ Recent posts