티스토리 뷰

728x90
반응형

 포스팅은 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)

 

1.1 vhost 설정

- 사용자의 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

  

1.2 요청 처리 설정

- 사용자 요청을 처리할 *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/maxJEUS 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.2engine-container-name만 대상 컨테이너로 지정해서 디플로이 하면 된다.

 

2.1 컨테이너 추가

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>

 

2.2 application 추가 및 설정

        추가한 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 컨테이너 생성 및 설정

 

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 요청을 받을 수 있다.

 

3. 추가한 서비스 확인하기

WebtoB wscfl –i http.m 로 설정파일을 컴파일 하고 재기동 한다.

JEUS ja에서 startcon 컨테이너명으로 해당 컨테이너 기동기시거나 jdown/jboot  전체 재기동 한다.

 

3.1 WebtoB JEUS 연결상태 확인

- 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 statefailed로그를 확인한다.

 

[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

 

3.3 서비스 호출하기

http.m에 설정한 vhost ip or 도메인 과 포트에 application에서 설정한 context-root를 더해 호출한다.

 

: http://www.domain.com/ 을 호출하게 되면 WEB-INF/web.xml에 설정한 welcome-file이 호출된다.

728x90
반응형
댓글
댓글쓰기 폼