티스토리 뷰
본 포스팅은 JEUS Application Deploy 방법에 대해 알아보겠습니다.
사용자의 http 요청을 받은 WebtoB가 설정에 따라 정적인 요청(html,css,js등)은 WebtoB에서 처리하고, 동적인 요청(servlet,jsp)은 JEUS 컨테이너에 디플로이된 application에서 처리하도록 설정하는것을 기본으로 한다.
1. WebtoB 설정
설정파일 위치 ($WEBTOBDIR/config/http.m)
*WebtoB 버전 4.1.3.2 이상을 기준 (버전확인 : wsadmin –v)
- 사용자의 http 요청을 WebtoB가 받게 되면 조건에 맞는 vhost가 요청을 받고, 추후 설정에서 vhost에 따라 조건 분기가 이루어 진다.
- http.m에 *NODE이하에 *VHOST가 없다면 추가하고 추가한 vhost에 대한 로그
설정을 추가해 준다.
vhost의 이름은 임의로 정한다.(예: vhost1) | |
*NODE ……(생략) 같은 port, 도메인 설정이라면 VHOST가 NODE보다 우선 처리된다.
*VHOST vhost1 DOCROOT="/home/src/web", #웹서버 소스경로 HOSTNAME = "www.domain.com", #서비스 할 도메인 HostAlias = "192.168.1.214,www.domain.co.kr", # 추가적인ip, 도메인 PORT = "8080", # 서비스 포트 ServiceOrder = "uri,ext", # 분기조건 LOGGING = "vhost1_acc", ERRORLOG = "vhost1_err"
……(생략)
*Logging …….(생략) vhost1_acc Format = “DEFAULT", FileName = "/경로/acces.log_%M%%D%%Y%", Option = "sync" vhost1_err Format = "ERROR", FileName = "/경로/error.log_%M%%D%%Y%", Option = "sync" |
vhost가 1024이하 “well known port”를 LISTEN하기 위해서는 권한설정이 필요하다.
Root 사용자로 $WEBTOBDIR/bin/htl에 대해 아래와 같이 수행한다.
chown root:root htl
chmod 6755 htl
- 사용자 요청을 처리할 *SERVER(JEUS와 연결하는 단위)와 SERVER가 속하게 되는 *SVRGROUP을 추가
- vhost로 들어온 요청을 어떤 SERVER가 처리할지 결정할 *URI절 설정
SVRGROUP명과, SERVER명은 임의로 정한다. (예: jsvg_v1, ap1) |
*SVRGROUP …(생략) jsvg_v1 SVRTYPE = JSV, Vhostname = "vhost1" #SVRTYPE = JSV는 JEUS로 연결 할 그룹
*SERVER …(생략) ap1 SVGNAME = jsvg_v1, MinProc = 30, MaxProc = 30 #min/max는 JEUS와 connection 수 #JEUS WEBMain.xml의 <registration-id>
*URI …(생략) uri_api Uri = "/", Svrtype =JSV , SvrName=ap1, Vhostname="vhost1", GotoExt = Y #vhost1로 들어온 요청에 대해 context-path가 “/” 이하의 모든 요청은 ap1 서버에서 처리한다. |
*참고 정적인 요청을 WebtoB가 처리하게 할지 모든 요청을 JEUS가 처리하게 할지 설정이 필요 uri절에 GotoExt = Y를 주게 되면 사용자 요청의 context-path와 “Uri“ 옵션 설정을 비교해 이하 매칭 되는 요청에 대해 *EXT절의 ServerType에 따라 HTML은 Webtob JSV는 JEUS로 분기되어 처리 GotoExt = N (기본값)으로 설정하게 되면 “Uri”이하 매칭되는 요청은 JEUS로 넘어가게 되고 WebtoB는 사용자 요청을 JEUS전달만 할 뿐 처리하지 않습니다. |
2. JEUS 설정
전체적인 설정파일인 JEUSMain.xml과 컨테이너 설정파일인 WEBMain.xml에 설정이 필요
*참고
추가할 application을 새로운 컨테이너가 아닌 기존 컨테이너에 디플로이 할 경우 2.2의 engine-container-name만 대상 컨테이너로 지정해서 디플로이 하면 된다.
Application을 새로운 컨테이너에 디플로이 할 경우 아래와 같이 설정해 준다.
설정파일 위치 ($JEUS_HOME/config/`hostname`/JEUSMain.xml)
기존 컨테이너 설정을 복사해 필요한 부분만 변경 한다. |
<node> <name>sdtech</name> <engine-container> <!— 기존 컨테이너 설정 à <name>container1</name> ……(생략) </engine-container> <engine-container> <!—컨테이너추가 시작 à <name>container2</name> <command-option>-Xms512m –Xmx1024m -XX:MaxPermSize=128m </command-option> <engine-command> <type>servlet</type> <name>engine2</name> </engine-command> <sequential-start>true</sequential-start> <system-logging> <level>INFO</level> <handler> <file-handler> <name>fileHandler</name> <valid-day>1</valid-day> </file-handler> </handler> </system-logging> </engine-container> <!—컨테이너추가 종료à ……(생략) </node> |
추가한 container2번에 application을 디플로이 한다.
같은 context-group에 context-path는 유일해야 한다. |
<jeus-system> <node> ……(생략) </node> <resource> ……(생략) </resource> ……(생략) <application> <!—Application 추가à <name>ap1</name> <path>/home/src/was</path> #JEUS에서 처리할 소스경로 <deployment-type>COMPONENT</deployment-type> <web-component> <context-root>/</context-root> #context-path </web-component> <deployment-target> <target> <engine-container-name>sdtech_container2</engine-container-name> #디플로이 대상 </target> </deployment-target> </application> <!—Application 추가 종료à </jeus-system> |
2.3.1 컨테이너를 새로 추가할 경우 해당 엔진 설정파일이 위치하는 디렉토리 복사가 필요하다.
기존 웹 엔진명을 복사해 추가한다.
cd $JEUS_HOME/config/`hostname`/
cp –r sdtech_servlet_engine1 sdtech_servlet_engine2 #’노드명’_sevlet_’엔진명’
2.3.2 컨테이너 설정
- 설정파일 위치 ($JEUS_HOME/config/`hostname`/추가컨테이너명/WEBMain.xml)
기존엔진에서 복사된 WEBMain.xml에 필요한 설정만 변경 및 추가 한다. |
<web-container xmlns="http://www.tmaxsoft.com/xml/ns/jeus" version="6.0"> <context-group> <group-name>MyGroup</group-name> <webserver-connection> <webtob-listener> <listener-id>webtob1</listener-id> <port>9900</port> #설명참조 <output-buffer-size>8192</output-buffer-size> <thread-pool> <min>30</min> #WebtoB http.m에 *SERVER의 min <max>30</max> #WebtoB http.m에 *SERVER의 max <step>1</step> <max-idle-time>30000</max-idle-time> </thread-pool> <disable-pipe>true</disable-pipe> #설명참조 <webtob-address>localhost</webtob-address> #WebtoB 서버 ip <webtob-home>/data/hwyoon/webtob</webtob-home> #설명참조 <registration-id>MyGroup</registration-id> #설명참조 <read-timeout>120000</read-timeout> #설명참조 </webtob-listener> </webserver-connection> <encoding> …..(생략) </encoding> </context-group> </web-container> |
<port> : WebtoB http.m파일에 설정된 *NODE절의 JSVPORT를 바라보도록 해야 한다.
<disable-pipe> : 기본값 false이다. WebtoB와 JEUS가 같은서버에 있다면 false로 설정해 pipe 통신을 하게 한다.
WebtoB와 JEUS가 원격서버에 있다면 socket 통신을 해야하므로 true로 설정한다.
<webtob-home> : JEUS가 WebtoB-home을 모를경우 지정한다. (계정이 다르거나, 다수 WebtoB 설치된 경우)
<read-timeout> : 설정시간안에 WebtoB로부터 check 패킷이 없으면 기 연결종료 후 재 연결
<registration-id> : WetoB의 http.m에 설정한 Server 이름을 지정해 해당 서버로 넘어오는 http 요청을 받을 수 있다.
WebtoB는 wscfl –i http.m 로 설정파일을 컴파일 하고 재기동 한다.
JEUS는 ja에서 startcon 컨테이너명으로 해당 컨테이너 기동기시거나 jdown/jboot 전체 재기동 한다.
- WebtoB를 설치한 계정에서 wsadmin을 입력하면 wsadmin툴로 접속된다.
- wsadmin에서 si를 입력하면 서버정보를 확인 할 수 있는데 새로 추가한 서버가 RDY인지 확인한다.
(NRDY라면 JEUS와 연결이 안된 상태)
--- Welcome to WebtoB Admin (Type "quit" to leave) --- $$1 sdtech (wsadm) [2013/11/14:13:23:06]: si -------------------------------------------------------------------------------- hth svrname (svri) status count cqcnt aqcnt qpcnt emcnt rscnt rbcnt -------------------------------------------------------------------------------- 0 html ( 0) RDY 0 0 0 0 0 0 0 0 ap1 ( 1) RDY 268 0 0 0 0 0 0 |
3.2 JEUS 컨테이너 및 application 디플로이 상태 확인
- JEUS 계정에서 ja를 입력해 jeusadmin으로 접속한 후 conlist 입력하면 현재 기동된 컨테이너 리스트를 확인 할 수 있고,
applist를 입력하면 각 컨테이너에 디플로이된 application 상태를 확인 가능 하다.
- 추가한 컨테이너가 기동이 안된 상태라면 startcon sdtech_container2 와 같이 입력해 기동하고, 만약 기동 실패하거나,
applist의 state가 failed면 로그를 확인한다.
[hwyoon@sdtech /home/hwyoon]# ja JEUS 6.0 (Fix#7) administration tool sdtech>conlist Engine container list of the node sdtech [1] sdtech_container2 : READY sdtech>applist name : ap1 type : WebModule EngineContainer : sdtech_container2 node : sdtech state : running |
http.m에 설정한 vhost의 ip or 도메인 과 포트에 application에서 설정한 context-root를 더해 호출한다.
예: http://www.domain.com/ 을 호출하게 되면 WEB-INF/web.xml에 설정한 welcome-file이 호출된다.
'④ 미들웨어 > ⓙ JEUS' 카테고리의 다른 글
[Web Application Server] Java Message Service(JMS - QUEUE) (0) | 2018.03.26 |
---|---|
[JEUS] log4jdbc 설정 가이드 (0) | 2018.03.25 |
[JMS] Failover Test (2/2) (0) | 2018.03.25 |
[JMS] Failover Test (1/2) (0) | 2018.03.25 |
[JEUS] IIS 연동가이드 (2) | 2018.03.25 |
- Total
- Today
- Yesterday
- 오픈스택
- 마이크로서비스 아키텍처
- API Gateway
- openstack tenant
- 마이크로서비스
- apache
- JEUS6
- Docker
- node.js
- git
- 아키텍처
- openstack token issue
- wildfly
- aa
- SWA
- TA
- kubernetes
- JBoss
- OpenStack
- JEUS7
- jeus
- Da
- nodejs
- 쿠버네티스
- Architecture
- aws
- webtob
- k8s
- SA
- MSA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |