Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

[오픈소스컨설팅]J boss6 7_교육자료

10.659 Aufrufe

Veröffentlicht am

본 자료는 WildFly, JBoss AS7, JBoss EAP6에 대한 교육 자료입니다. 처음 접하시는 분들이나 세팅이 필요한 분들은 본 자료를 활용하시면 됩니다.

교육이 필요하시면 오픈소스컨설팅 페이스북에 글을 남겨주세요.

https://www.facebook.com/osckorea?ref=hl

Veröffentlicht in: Software
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ..................................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, CookeBOOK Crime, eeBOOK Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

[오픈소스컨설팅]J boss6 7_교육자료

  1. 1. JBoss 교육자료 주식회사 오픈소스컨설팅
  2. 2. 2 - Internal Use Only - 교육 내용 1일차 • 1. JBoss 설치 • 2. 데이더소스 설정 • 3. 애플리케이션 배치
  3. 3. 01. JBoss EAP 설치
  4. 4. 4 - Internal Use Only - JBoss Overview JBoss AS 3.2.0 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 JBoss AS 4.0.0 – 4.0.5 JBoss AS 4.2.0 – 4.2.3 J2EE 1.4 Certification JBoss EAP 5.0.0 JBoss EAP 5.1.0 – 5.1.2 JBoss EAP 6 JavaEE 5 Certification, JDK5 JavaEE 5 Certification, JDK5, JDK6 JavaEE 6 Full Certification, JDK6
  5. 5. 5 - Internal Use Only - JBoss 제품의 분류 JBoss.org Community JBoss Enterprise Middleware
  6. 6. 6 - Internal Use Only - JBoss 제품화 과정 Platform Candidate Release(s) Quality Assurance JBoss.org 프로젝트 1 제품 요구 사항 정의 제품 관리 2 플랫폼 테스팅, 인증, 문서화 JBoss QA, 문서화팀, 인증된 파트너 4 JBoss Enterprise Platform 플랫폼 컴포넌트 구성 및 통합 JBoss 제품화 담당 엔지니어 3 5 플랫폼 발표 (General Availability) JBoss Release Engineering DeliveryPhaseProductizationTeam
  7. 7. 7 - Internal Use Only - JBoss 특장점 OSS 프레임워크 지원 초경량/초고속 데이터그리드 / 클라우드풍부한 관리 인터페이스 EAP 6
  8. 8. 8 - Internal Use Only - JBoss 참고 자료 제품 문서 http://docs.redhat.com
  9. 9. Certified Partner by JBoss HA 서비스 구성 환경
  10. 10. 10 - Internal Use Only - JBoss 서비스 환경 구성 Standalone HA 구성을 위한 시스템 구성도 WAS Server DB Server Red Hat Enterprise Linux 6.x Red Hat Enterprise Linux 6.x 사용자 PC Web Server Red Hat Enterprise Linux 6.x standalone_ha_11 standalone_ha_21 apache mysql
  11. 11. 11 - Internal Use Only - JBoss HA 서비스 구성 환경 Standalone HA 구성 설치 디렉토리 구조 WAS 서버 디렉토리 WEB 서버 디렉토리  /opt HA 구성 서비스의 메인 디렉토리  /was/jboss-eap-6.1 JBoss WAS가 설치된 디렉토리  /servers WAS 인스턴스가 위치할 디렉토리  /app 서비스용 Application이 위치한 디렉토리  /opt  /web/apache JBoss EWS 아파치 웹서버가 설치된 디렉토리
  12. 12. JBoss 설치
  13. 13. 13 - Internal Use Only - 목차  JBoss 서버 다운로드  JBoss 서버 설치 방법  JBoss 서버 설치  JBoss 주요 디렉토리 구조
  14. 14. 14 - Internal Use Only - JBoss 설치 JBoss Community 사이트에서 설치 파일 다운로드 http://www.jboss.org/jbossas/downloads 에서 설치 파일을 다운로드합니다.
  15. 15. 15 - Internal Use Only - JBoss 설치 Redhat 고객 포탈을 통한 다운로드 레드햇 서브스크립션을 구매한 고객을 위한 다운로드 사이트이며, 발급된 계정으로 로그인 을 수행하면 다운로드 받을 수 있습니다. 다운로드 URL: http://access.redhat.com
  16. 16. 16 - Internal Use Only - JBoss 설치 JBoss 설치 형태 community : zip 압축 파일로 제공 EAP : zip, jar, platform binary, linux rpm 형태로 제공 Extracting the ZIP Download Binary File을 받아서 원하는 경로에 압축을 해제하는 설치 방법입니다. # unzip jboss-eap-6.1.1.zip RPM 설치 RHEL 6.x Plaform을 이용하여 설치이며 서브스크립트이 필요한 설치 방법입니다. # yum groupinstall jboss-eap6 GUI Installer Linux GUI 환경에서 설치하는 방법이며 설치 중 원하는 구성을 손쉽게 설정할 수 있는 설치 방법 입니다. # java -jar jboss-eap-6.1.1-installer.jar Console Installation Linux GUI 환경이 안 되는 상황에서 터미널창을 이용하여 Text 방식으로 설치할 수 있는 설치 방 법입니다. # java -jar jboss-eap-6.1.1-installer.jar –console
  17. 17. 17 - Internal Use Only - JBoss 설치 JBoss unzip /opt/was/ 폴더로 해당 파일을 업로드 한 후 압축을 풉니다. ls –al 명령어를 통해 압축 해제 내용을 확인 합니다. [jboss@server /opt/was] unzip jboss-eap-6.1.1.zip [jboss@server /opt/was] rm -f jboss-eap-6.1.1.zip [jboss@server /opt/was]# ls -al total 52 drwxr-xr-x. 13 jboss jboss 4096 Oct 24 07:54 . dr-xr-xr-x. 27 jboss jboss 4096 Jun 12 02:00 .. lrwxrwxrwx 1 jboss jboss 19 Oct 24 07:54 jboss-eap-6.1
  18. 18. 18 - Internal Use Only - JBoss 설치 JBoss의 주요 디렉토리 구조 JBoss-eap-6.x bin standalone.conf standalone.sh domain.sh jboss-cli.sh modules standalone configuration deployments logs data Standalone mode JVM parameters Standalone mode Domain mode Command Line Interface Static JBoss Module Definitions Standalone Configuration File SystemDeployments Internal Data(includes Repository)
  19. 19. 19 - Internal Use Only - JBoss 설치 JBoss의 주요 디렉토리 구조 JBoss-eap-6.x domain domain.xml servers server-one logs data appclient configuration Domain Wide Unified Configuration Server “One” JVM Instance EE Application Client Configuration configuration host.xml Host Controller Configuration appclient.xml
  20. 20. JBoss 인스턴스 생성
  21. 21. 21 - Internal Use Only - 목차  서버 모드  관리 인터페이스  인스턴스 생성  관리 스크립트 작성  JBoss 인스턴스 관리자 계정 설정  JBoss 인스턴스 기동 및 정지
  22. 22. 22 - Internal Use Only - JBoss 인스턴스 생성 Standalone 서버 모드 Host #1 Server #1 Host #2 Server #3 Host #3 Server #6 Database server-xx standalone-xxxx.xml Server #2 Sever #4 … Server #5 Partition A Partition B • 이전 버전 JBoss와 같은 단일 JVM 서버로 구성 • 관리 기능이 IN-VM에 있음 • Lifecyle 관리가 없음(shutdown만 가능)
  23. 23. 23 - Internal Use Only - JBoss 인스턴스 생성 Domain 서버 모드 Host #1 Host #2 Host Controller Server #1 Host #3 Host Controller Server #3 Host #4 Host Controller Server #5 Database Database Domain Controller (Master Host Controllre) Server #2 Sever #4 … … • Multi-JVM, multi-server 모델 • 도메인 컨트롤러로 관리함 • 호스트에 여러 서버 인스턴스(JVM) 사용 • 프로세스 컨트롤러로 Full lifecycle 관리
  24. 24. 24 - Internal Use Only - JBoss 인스턴스 생성 Management Interface Tools • Command Line Interface • Web Console • Products - JBoss ON Management APIs • JMX – JSR-77/160 • Java(DMR) • REST
  25. 25. 25 - Internal Use Only - JBoss 인스턴스 생성 JBoss 이중화 환경 구성을 위해 standalone 서버 구성 JBoss 기본 제공 standalone template 서버 복사 [jboss@host1 /opt/was] mkdir servers [jboss@host1 /opt/was] cp –fR ./jboss-eap-6.1/standalone ./servers/standalone_ha_11 [jboss@host1 /opt/was] cd servers [jboss@host1 /opt/was] [jboss@host1 /opt/was/servers]# ls -al total 52 drwxr-xr-x. 13 jboss jboss 4096 Oct 24 07:54 . dr-xr-xr-x. 27 jboss jboss 4096 Jun 12 02:00 .. lrwxrwxrwx 1 jboss jboss 19 Oct 24 07:54 standalone_ha_11
  26. 26. 26 - Internal Use Only - JBoss 인스턴스 생성 JBoss 인스턴스 디렉토리 구조 /configuration JBoss의 메인 설정 파일이 보관되어 있는 디렉토리 /data JBoss의 실행시 생성되는 파일들이 보관되는 디렉토리 /deployments JBoss에 배포할 애플리케이션을 놓을 기본 위치 /log JBoss의 내부 로그 파일 기본 보관 디렉토리 /tmp JBoss 내부
  27. 27. 27 - Internal Use Only - JBoss 인스턴스 생성 관리 스크립트 작성 관리 스크립트를 위한 폴더 생성 서버 설정 스크립트 생성 및 편집 아래 노란 부분의 설정은 각각 서버에 맞게 설정합니다. [jboss@host1 /opt/was/servers ]# cd standalone_ha_11 [jboss@host1 /opt/was/servers/standalone_ha_11 ]# mkdir bin [jboss@host1 /opt/was/servers/standalone_ha_11 ]# cd bin #!/bin/sh ##### JBOSS Directory Setup ##### export JBOSS_HOME=/opt/was/jboss-eap-6.1 export DOMAIN_BASE=/opt/was/servers export SERVER_NAME=standalone_ha_11 ##### Configration File ##### export CONFIG_FILE=standalone-ha.xml export PORT_OFFSET=0
  28. 28. 28 - Internal Use Only - JBoss 인스턴스 생성 관리 스크립트 작성 (계속) export JBOSS_USER=jboss ##### Bind Address ##### export BIND_ADDR=192.168.0.172 #### JBoss Clustering Config export MULTICAST_ADDR=230.1.0.175 export JMS_MULTICAST_ADDR=231.7.0.175 export MODCLUSTER_MULTICAST_ADDR=224.0.1.175 export MGMT_ADDR=192.168.0.172 …중략… #export JAVA_OPTS=" $JAVA_OPTS -verbose:gc" export JAVA_OPTS=" $JAVA_OPTS -Djava.net.preferIPv4Stack=true" export JAVA_OPTS=" $JAVA_OPTS -Djboss.socket.binding.port-offset=$PORT_OFFSET" export JAVA_OPTS=" $JAVA_OPTS -Djboss.node.name=$NODE_NAME" export JAVA_OPTS=" $JAVA_OPTS -Djboss.bind.address.management=$MGMT_ADDR“ …중략…
  29. 29. 29 - Internal Use Only - JBoss 인스턴스 생성 기동 스크립트 작성 서버 기동 스크립트 작성 [jboss@host1 /opt/was/servers/standalone_ha_11/bin ]# vi start.sh #!/bin/sh DATE=`date +%Y%m%d%H%M%S` . ./env.sh …… 중략 …… nohup $JBOSS_HOME/bin/standalone.sh -DSERVER=$SERVER_NAME - P=$DOMAIN_BASE/$SERVER_NAME/bin/env.properties -c $CONFIG_FILE >> $SERVER_NAME.out & …… 중략 ……
  30. 30. 30 - Internal Use Only - JBoss 인스턴스 생성 정지 스크립트 작성 서버 정지 스크립트 작성 [jboss@host1 /opt/was/servers/standalone_ha_11/bin ]# vi shutdown.sh #!/bin/sh . ./env.sh $JBOSS_HOME/bin/jboss-cli.sh --connect --controller=$CONTROLLER_IP:$CONTROLLER_PORT -- command=:shutdown
  31. 31. 31 - Internal Use Only - JBoss 인스턴스 생성 JBoss Instance 관리자 계정 설정 스크립트 작성 관리 계정 생성 스크립트 작성 ① 편집될 내용은 다음과 같습니다. [ 첨부파일 : add-user.sh ] [jboss@host1 /opt/was/servers/standalone_ha_11/bin ]# vi add-user.sh #!/bin/sh . ./env.sh JAVA_OPTS="$JAVA_OPTS - Djboss.server.config.user.dir=$DOMAIN_BASE/$SERVER_NAME/configuration" $JBOSS_HOME/bin/add-user.sh $@
  32. 32. 32 - Internal Use Only - JBoss 인스턴스 생성 JBoss 인스턴스 관리자 계정 설정 관리자 계정을 위한 스크립트 실행 [jboss@host1 /opt/was/servers/standalone_ha_11/bin > ./add-user.sh ================================================ JBOSS_HOME=/opt/was/jboss-eap-6.1 DOMAIN_BASE=/opt/was/servers SERVER_NAME=standalone_ha_11 ================================================ What type of user do you wish to add? a) Management User (mgmt-users.properties) b) Application User (application-users.properties) (a): a Enter the details of the new user to add. Realm (ManagementRealm) : Username : test Password : !test123 Re-enter Password : !test123 About to add user 'test' for realm 'ManagementRealm' Is this correct yes/no? yes Added user 'test' to file '/opt/was/servers/standalone_ha_11/configuration/mgmt-users.properties' Added user 'test' to file '/opt/was/jboss-eap-6.1/domain/configuration/mgmt-users.properties' Is this new user going to be used for one AS process to connect to another AS process? e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls. yes/no? yes To represent the user add the following to the server-identities definition <secret value="IXRlc3QxMjM=" />
  33. 33. 33 - Internal Use Only - JBoss 인스턴스 생성 인스턴스의 서비스 포트 구성 JBoss 서버는 별도의 설정이 없다면 아래 default 포트를 사용합니다. 서비스 구성을 위해 OFFSET을 이용 인스턴스별 서비스 포트를 설정하도록 합니다. HTTP 포트는 사용자가 브라우저를 이용하여 직접 해당 인스턴스로 접속할 수 있는 포트 AJP13포트는 사용자가 Apache를 통해서 접속될 때 사용되는 포트 OFFSET = 기본 포트 에서의 증가치 env.sh 파일에서 아래 부분을 설정하면 포트가 변경됩니다. Server Name OFFSET Name HTTP Port AJP13 Port default 0 ports-00 8080 8009 standalone_ha_11 100 ports-01 8180 8109 standalone_ha_21 200 ports-02 8280 8209 export PORT_OFFSET=0 export JAVA_OPTS=" $JAVA_OPTS -Djboss.socket.binding.port-offset=$PORT_OFFSET"
  34. 34. 34 - Internal Use Only - JBoss 인스턴스 생성 start.sh 를 통한 서버 기동 start.sh 파일을 통해 standalone 서버를 기동합니다. 위의 started 문구가 보인다면 정상적으로 서버 기동이 완료 된 것입니다. [jboss@server opt] cd was [jboss@server was] cd servers [jboss@server servers] cd standalone_ha_01 [jboss@server standalone_ha_01] cd bin [jboss@server bin] ./start.sh 04:41:31,022 INFO [org.jboss.modules] (main) JBoss Modules version 1.2.0.Final-bz-975242 04:41:31,115 INFO [org.jboss.msc] (main) JBoss MSC version 1.0.4.GA-redhat-1 … 중략.. 04:41:31,990 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss EAP 6.1.0.GA (AS 7.2.0.Final-redhat- 8) started in 1163ms - Started 123 of 177 services (53 services are passive or on-demand) 04:41:53,612 INFO [org.apache.catalina.core] (MSC service thread 1-13) JBWEB001079: Container org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/] has not been started
  35. 35. 35 - Internal Use Only - JBoss 인스턴스 생성 서버 기동 확인 서버가 정상 기동이 되면 아래의 Port를 통해 접근할 수 있습니다.  관리자 콘솔 접근 포트 default : 9990  standalone_ha_01 접근 URL: http://server-ip:10090/console
  36. 36. 36 - Internal Use Only - JBoss 인스턴스 생성 shutdown.sh 를 통한 서버 정지 shutdown.sh 파일을 통해 standalone 서버를 정지합니다. 위의 sucess 문구가 보인다면 정상적으로 서버가 정지된 것입니다. [jboss@server opt] cd jservers [jboss@server servers] cd standalone_ha_01 [jboss@server standalone_ha_01] cd bin [jboss@server bin] ./shutdown.sh ================================================ JBOSS_HOME=/opt/jboss-eap-6.1 DOMAIN_BASE=/opt/servers SERVER_NAME=standalone_ha_11 CONFIG_FILE=standalone-ha.xml BIND_ADDR=192.168.0.172 PORT_OFFSET=100 MULTICAST_ADDR=230.1.11.175 CONTROLLER=192.168.0.172:10099 ================================================ {"outcome" => "success"}
  37. 37. 37 - Internal Use Only - JBoss 설치 실습 실습 1. JBoss 압축 해제 2. Instance 생성 3. 관리자 계정 생성 4. instance start 5. instance shutdown
  38. 38. JBoss Database 연동 설정
  39. 39. 39 - Internal Use Only - 목차  JDBC 란  ConnectionPool 이란  JDBC Driver 설치  JDBC Driver 등록 설정  Datasource 연결 설정  Datasource 패스워드 암호화
  40. 40. 40 - Internal Use Only - JBoss Database 연동 설정 JDBC란  JDBC가 하는일  데이타베이스 연결  SQL문장 전송  결과 처리
  41. 41. 41 - Internal Use Only - JBoss Database 연동 설정 JDBC Driver의 Type Type I “Bridge” Type II “Native” Type III “Middleware” Type IV “Pure” JDBC ODBC ODBC Driver CLI (.lib) Middleware Server
  42. 42. 42 - Internal Use Only - JBoss Database 연동 설정 JDBC Connection Pool WAS의 JDBC connection pool: JDBC를 통한 Database연결 속도가 느리기 때문에 연결을 미리 맺은 상태에서 Pool을 만들어 이를 애플리케이션에 제공 Pool의 Connection은 재사용하며, 사용량에 따라 Pool내의 Connection개수를 가변적으로 활용(Shrink). 애플리케이션에서는 JNDI 트리에 바인딩된 DataSource를 통해 접근 WAS는 prepared, callable statement를 캐쉬 할 수 있습니다. Statement Cache [WAS  DB]간의 overhead 감소 애플리케이션의 특성에 따라 Cache 크기를 조절 (일반적으로 100정도)
  43. 43. 43 - Internal Use Only - JBoss Database 연동 설정 MySQL JDBC 드라이버 다운로드 http://dev.mysql.com/downloads/connector/j/ 에서 설치 파일을 다운로드합니다.
  44. 44. 44 - Internal Use Only - JBoss Database 연동 설정 JDBC 드라이버의 등록 방법 JDBC 드라이버는 다음의 형태를 통해 사용할 수 있습니다. 설정 설명 modules JDBC 드라이버를 jboss의 module.xml 형태의 모듈화하여 사용하는 방법 library Jar 파일의 형식의 deploy를 통한 모듈 등록
  45. 45. 45 - Internal Use Only - JBoss Database 연동 설정 JDBC 드라이버 등록 설정 $JBOSS_HOME/modules.ext 디렉토리에 하위 디렉토리를 만들고 jar 파일을 복사한 후 module.xml 파일을 작성합니다.
  46. 46. 46 - Internal Use Only - JBoss Database 연동 설정 JDBC 드라이버 모듈화 설정 (계속) module.xml <module xmlns="urn:jboss:module:1.1" name="com.mysql"> <properties> <property name="jboss.api" value="unsupported"/> </properties> <resources> <resource-root path="mysql-connector-java-commercial-5.1.26-bin.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>
  47. 47. 47 - Internal Use Only - JBoss Database 연동 설정 JBoss Server 인스턴스의 설정 파일(standalone-ha.xml)에 jdbc 드라이버를 등록합니다.  module.xml 의 name 과 driver의 module 부분은 동일하여야 합니다. (module.xml) <datasources> <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true"> …중략… </datasource> <drivers> <driver name="h2" module="com.h2database.h2"> <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource- class> </driver> <driver name="mysql" module="com.mysql"> <driver-class>com.mysql.jdbc.Driver</driver-class> </driver> </drivers> </datasources> JBoss 인스턴스 설정파일에 해당 JDBC 모듈 추가 <module xmlns="urn:jboss:module:1.1" name="com.mysql">
  48. 48. 48 - Internal Use Only - JBoss Database 연동 설정 JDBC 드라이버 등록 확인 JBoss Server Instance 을 기동하게 되면 아래 내용과 같이 mysql jdbc 드라이버가 정상적 으로 로드 된 것을 확인하실 수 있습니다. 13:46:25,434 INFO [org.apache.coyote.http11] (MSC service thread 1-4) JBWEB003001: Coyote HTTP/1.1 initializing on : http-/0.0.0.0:8080 13:46:25,435 INFO [org.apache.coyote.ajp] (MSC service thread 1-5) JBWEB003046: Starting Coyote AJP/1.3 on ajp-/0.0.0.0:8009 13:46:25,446 INFO [org.apache.coyote.http11] (MSC service thread 1-4) JBWEB003000: Coyote HTTP/1.1 starting on: http-/0.0.0.0:8080 13:46:25,461 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010404: Deploying non-JDBC-compliant driver class com.mysql.jdbc.Driver (version 5.1) 13:46:25,487 INFO [org.jboss.modcluster] (ServerService Thread Pool -- 52) MODCLUSTER000001: Initializing mod_cluster ${project.version} 13:46:25,543 INFO [org.jboss.modcluster] (ServerService Thread Pool -- 52) MODCLUSTER000032: Listening to proxy advertisements on /224.0.1.105:23364 13:46:25,554 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
  49. 49. 49 - Internal Use Only - JBoss Database 연동 설정 Datasource 설정 standalone Instance 에서 사용되는 configuration 파일(standalone-ha.xml)에 Datasource 부분을 설정합니다. EAP 5.x 대의 *-ds.xml 파일은 가급적 사용을 하지 않도록 합니다. (Console, CLI 에서 접근 할 수 없음.) <datasources> <datasource jndi-name="java:jboss/datasources/MysqlDS" pool-name="MysqlDS" enabled="true" use-java-context="true"> <connection-url>jdbc:mysql://localhost:3306/mydb</connection-url> <driver>com.mysql</driver> <security> <user-name>dbuser</user-name> <password>dbpasswd</password> </security> <validation> <valid-connection-checker class- name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"> </valid-connection-checker> </validation> </datasource> </datasources>
  50. 50. 50 - Internal Use Only - JBoss Database 연동 설정 Datasource Password encryption 운영서버인 경우 보안상의 이유로 Datasource의 패스워드 부분이 일반 평문이 아닌 암호화 형태로 설 정을 하여야 한다. Datasource의 패스워드를 암호화 할 수 있는 절차는 다음과 같다. 1. 암호화를 위한 쉘 스크립트 부분 enc_ds.sh 작성 #!/bin/sh export JBOSS_HOME=/opt/was/jboss-eap-6.1 export CLASSPATH=${JBOSS_HOME}/modules/system/layers/base/org/picketbox/main/picketbox-4.0.17.SP2-redhat-2.jar export CLASSPATH=$CLASSPATH:${JBOSS_HOME}/system/layers/base/org/jboss/logging/main/jboss-logging-3.1.2.GA-r edhat-1.jar java -cp $CLASSPATH org.picketbox.datasource.security.SecureIdentityLoginModule !test123 암호화할 패스워드 : ex) !test123 EAP 버전 별 library를 서버에 맞게 설정
  51. 51. 51 - Internal Use Only - Datasource 암호화 설정 Datasource Password encryption 2. 쉘 스크립트 실행 3. security domain 설정 서버의 configuration 파일에서 sub-system [security-domains] 항목에 해당 security-domain 을 추가 합니다. [jboss@KVM2 /opt/was/servers/standalone_ha_11/bin]$ ./enc_ds.sh Encoded password: 576959465f6c98a0df8592078de921bc 암호화된 패스워드 <security-domain name="encrypted-ds" cache-type="default"> <authentication> <login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required"> <module-option name="username" value="test"/> <module-option name="password" value="576959465f6c98a0df8592078de921bc"/> <module-option name="managedConnectionFactoryName" value="jboss.jca:service=LocalTxCM,name=MySqlDS_Pool"/> </login-module> </authentication> </security-domain> Datasource에서 참조될 security-domain 이름
  52. 52. 52 - Internal Use Only - JBoss Database 연동 설정 Datasource Password encryption 4. Datasource에 암호화 적용 서버의 configuration 파일에서 datasource의 [security] 항목부분 확인 ASIS ToBE <datasource jta="false" jndi-name="java:/testDS" pool-name="testDS" enabled="true" use-ccm="false"> …중략 <security> <security-domain>encrypted-ds</security-domain> </security> …중략 </datasource> <datasource jta="false" jndi-name="java:/testDS" pool-name="testDS" enabled="true" use-ccm="false"> …중략 <security> <user-name>test</user-name> <password>!test123</password> </security> …중략 </datasource>
  53. 53. 53 - Internal Use Only - Datasource 연동 실습 실습 1. JDBC 드라이버 모듈화 2. JDBC 드라이버 모듈 등록 3. DataSource 설정 4. DataSource 패스워드 암호화 설정
  54. 54. JBoss 애플리케이션 디플로이 설정
  55. 55. 55 - Internal Use Only - 목차  지원하는 애플리케이션  애플리케이션 디플로이 수행 방법  애플리케이션 디플로이 설정
  56. 56. 56 - Internal Use Only - 애플리케이션 디플로이 설정 지원되는 애플리케이션 웹애플리케이션(.war) EJB 애플리케이션(.jar) Enterprise 애플리케이션(.ear) Resource Adapter (.rar) 웹서비스애플리케이션(.wsr) JBoss 서비스(.sar)
  57. 57. 57 - Internal Use Only - 애플리케이션 디플로이 설정 애플리케이션 디플로이 수행 방법 CLI Tool  애플리케이션 copy 후 파일 생성을 통한 디플로이 deployments 폴더에 a.war 라는 애플리케이션이 있을 경우 a.war.dodeploy 라는 파일을 생성하여 deploy 하는 방법  관리자 콘솔을 통한 디플로이  CLI Tool을 이용한 디플로이 Web Console
  58. 58. 58 - Internal Use Only - 애플리케이션 디플로이 설정 애플리케이션 copy 후 파일 생성을 통한 디플로이  subsystem deployments-scanner service 특정 디렉토리에 애플리케이션패키지 및 deploy 지시 관련 파일을 참조하여 디플로이를 수행시켜주는 jboss subsystem ( 서버 default 옵션 )  설정 파일 : $SERVER_HOME/configuration/standalone.xml  검색 위치 : $SERVER_HOME/deployments <subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1"> <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000"/> </subsystem>
  59. 59. 59 - Internal Use Only - 애플리케이션 디플로이 설정 애플리케이션 copy 후 파일 생성을 통한 디플로이 (계속) 디플로이 요청 지시어 디플로이 상태 확인 설정 설명 dodeploy deploy scanner에게 deploy를 하게 요청하게 하는 지시어 설정 설명 isdeploying 서버에 애플리케이션을 배포하는 상태 deployed 정상적으로 서버에 애플리케이션이 배포 완료 isundeploying 서버에서 애플리케이션 배포를 취소(삭제) 하고 있는 상태 undeployed 정상적으로 서버에서 애플리케이션 배포 취소(삭제) 완료 failed 서버에 애플리케이션 배포작업 중 에러가 발생한 상태 pending 서버에 애플리케이션 배포작업이 지연중인 상태
  60. 60. 60 - Internal Use Only - 애플리케이션 디플로이 설정 애플리케이션 copy 후 파일 생성을 통한 디플로이 (계속) 첨부된 test.war 파일을 standalone 서버의 deployments 폴더에 upload 시킵니다. touch 명령을 통해 test.war.dodeploy 라는 이름의 파일을 생성합니다. [jboss@host1 /opt/was/servers/standalone_ha_11/deployments] ls –al total 20 -rw-r--r-- 1 jboss jboss 8870 Nov 1 10:15 README.txt -rw-r--r-- 4 jboss jboss 4096 Nov 2 12:39 test.war [jboss@host1 /opt/was/servers/standalone_ha_11/deployments] touch test.war.dodeploy total 20 -rw-r--r-- 1 jboss jboss 8870 Nov 1 10:15 README.txt -rw-r--r-- 4 jboss jboss 4096 Nov 2 12:39 test.war -rw-rw-r-- 1 jboss jboss 8 Nov 2 12:39 test.war.dodeploy
  61. 61. 61 - Internal Use Only - 애플리케이션 디플로이 설정 애플리케이션 copy 후 파일 생성을 통한 디플로이 (계속) 잠시 후 test.war.dodeploy  test.war.deployed 로 변경된 것을 확인할 수 있습니다. 서버 로그에서 애플리케이션 정상 디플로이 여부 확인 [jboss@host1 /opt/was/servers/standalone_ha_11/deployments] touch test.war.dodeploy total 20 -rw-r--r-- 1 jboss jboss 8870 Nov 1 10:15 README.txt -rw-r--r-- 4 jboss jboss 4096 Nov 2 12:39 test.war -rw-rw-r-- 1 jboss jboss 8 Nov 2 12:39 test.war.deployed 13:02:12,618 INFO [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 2) JBAS010281: Started default-host/test cache from web container 13:02:12,619 INFO [org.jboss.web] (ServerService Thread Pool -- 2) JBAS018210: Register web context: /test 13:02:12,719 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "test.war" (runtime-name : "test.war")
  62. 62. 62 - Internal Use Only - 애플리케이션 디플로이 설정 external directory 설정  external directory란  jboss deployments subsystem 에서 기본 scanner가 동작 폴더는 jboss.server.base.dir 하부의 deployments라는 폴더입니다.  external directory 는 말 그대로 기본 deployments 디렉토리가 아닌 외부 확장 폴 더를 scanner 영역에서 지정하여 애플리케이션 등록 여부를 확인 할 수 있게 지정 하는 애플리케이션 외부확장 검색 디렉토리를 말합니다.
  63. 63. 63 - Internal Use Only - 애플리케이션 디플로이 설정 external directory 설정  subsystem deployments-scanner service에 external directory 추가  설정 파일 : $SERVER_HOME/configuration/standalone.xm  검색 위치 : $SERVER_HOME/deployments <subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1"> <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000"/> <deployment-scanner name="externalDeploy" path="/opt/was/app" scan-interval="5000"/> </subsystem>
  64. 64. 64 - Internal Use Only - 애플리케이션 디플로이 설정 JBoss Command Line Interface를 이용한 Deploy CLI 접속 가능 여부 확인 서버가 정상 기동시 아래와 같이 관리자 Port를 통해 CLI 관리자 Tool을 이용할 수 있다.  Command Line Interface Port : 10099 … 중략 16:23:12,284 INFO [org.jboss.as.remoting] (MSC service thread 1-1) JBAS017100: Listening on 192.168.0.172:10099 16:23:12,285 INFO [org.jboss.as.remoting] (MSC service thread 1-7) JBAS017100: Listening on 0.0.0.0:4547 16:23:12,572 INFO [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://192.168.0.172:10090/management 16:23:12,572 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://192.168.0.172:10090 16:23:12,572 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss EAP 6.1.1.GA (AS 7.3.0.Final-redhat-8) started in 2156ms - Started 168 of 284 services (115 services are passive or on-demand)
  65. 65. 65 - Internal Use Only - 애플리케이션 디플로이 설정 CLI 접속 방법 CLI 접속을 하기 위해서는 다음의 명령어를 통해 접속을 하게 된다. $JBOSS_HOME/bin/jboss-cli.sh --controller=$SERVER_IP:10099 --connect [jboss@host1 /opt/was/servers/standalone_ha_11/bin]$ /opt/was/jboss-eap-6.1/bin/jboss-cli.sh -- controller=192.168.0.172:10099 --connect [standalone@192.168.0.172:10099 /]
  66. 66. 66 - Internal Use Only - 애플리케이션 디플로이 설정 CLI을 통한 deploy CLI 접속이 완료가 된 이후에 Deploy 작업을 진행한다. 본 내용에서는 /opt/was/app/test.war 파일이 있는걸 가정하고 진행한다. Deploy 요청이 정상적으로 수행이 되면 server 로그 부분에 결과가 표시됩니다. [standalone@192.168.0.172:10099 /] deploy/was/app/test.war [standalone@192.168.0.172:10099 /] 16:39:16,290 INFO [org.jboss.as.repository] (management-handler-thread - 5) JBAS014900: Content added at location /opt/was/servers/standalone_ha_11/data/content/d9/0e2d6e3bad2a5cb22edc747e1774200eecd14e/content 16:39:16,292 INFO [org.jboss.as.server.deployment] (MSC service thread 1-6) JBAS015876: Starting deployment of “test.war" (runtime-name: “test.war") 16:39:16,324 INFO [org.jboss.web] (ServerService Thread Pool -- 57) JBAS018210: Register web context: 16:39:16,432 INFO [org.jboss.as.server] (management-handler-thread - 5) JBAS018559: Deployed “test.war" (runtime-name : “test.war")
  67. 67. 67 - Internal Use Only - 애플리케이션 디플로이 설정 CLI을 통한 deploy (계속) 관리자 콘솔에서 CLI를 통해 deploy 된 Content의 현 상태를 확인할 수도 있다.
  68. 68. 68 - Internal Use Only - 애플리케이션 디플로이 설정 CLI을 통한 deploy (계속) 실제 http service port 를 통해 deploy 된 Web application Content를 확인 할 수 있다.
  69. 69. 69 - Internal Use Only - 애플리케이션 디플로이 설정 실습 1. 표준 애플리케이션 디플로이 설정 2. external directory 설정 3. CLI를 이용한 디플로이 설정 4. 관리자 콘솔을 통한 디플로이 확인 5. Browser 확인
  70. 70. Apache Server Setup
  71. 71. 71 - Internal Use Only - 목차  Apache Overview  Apache Tomcat Connector  Apache 설치  Apache Tomcat Connector 설치  Apache + JBoss 연동 설정
  72. 72. 72 - Internal Use Only - Apache Server Setup Apache 버전 A Patch of NCSA httpd 1.3로 1995에 시작 apache 재단으로 발전 Apache License 다운로드 http://httpd.apache.org/ JBoss EWS (Enterprise Web Server) 다운로드 http://access.redhat.com/ JBoss Enterprise Platforms  Web Server Applicatoin Platform / 6.1  Apache HTTP Server for XXX
  73. 73. 73 - Internal Use Only - Apache Server Setup Prefork Parent process Child process Child process Child process ListenerSocket • StartServers • MaxClients Child 프로세스를 미리 fork
  74. 74. 74 - Internal Use Only - Apache Server Setup Worker Parent process ListenerSocket Child Process T1 T2 Tn Child Process T1 T2 Tn • ThreadsPerChild • MaxClients Multi-Processing & Multi-Thread 방식
  75. 75. 75 - Internal Use Only - Apache Server Setup Apache Tomcat Connector Tomcat,JBoss 와 연동을 하기 위한 웹서버 플러그인 모듈 ( Apache 재단 ) 지원 웹서버  Apache  IIS  Netscape/SunOne Web Server AJPv13 프로토콜 사용  http://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html 다운로드  http://tomcat.apache.org/connectors-doc/
  76. 76. 76 - Internal Use Only - Apache Server Setup Apache Tomcat Connector : mod_jk, mod_proxy, mod_cluster 3가지 아파치 모듈 연결 방식  mod_jk – 가장 오래되고 안정적  mod_proxy – Apache 2.2 이상에서 가능 mod_proxy_ajp, mod_proxy_balancer등이 필요  mod_cluster – 새로운 형태의 모듈 multicast 방식으로 자동 발견 기능 제공
  77. 77. 77 - Internal Use Only - Apache Server Setup Apache 웹서버 디렉토리 구조 /etc/httpd /conf Apache의 메인 설정 파일이 보관되어 있는 디렉토리 /conf.d 추가 모듈 설정이 보관되는 디렉토리 JBoss연동을 위한 설정 파일 mod_jk.conf등을 배치 *.conf 파일이 모두 로딩된다. /modules Apache 동적 모듈 보관 디렉토리 Apache – JBoss 연동을 위한 mod_jk.so파일 /logs Apache 발생 로그 저장 디렉토리 /run Apache 실행시 관련 정보(PID등) 저장 디렉토리 /sbin Apache 인스턴스 실행 및 운영 스크립트 보관 디렉토리
  78. 78. 78 - Internal Use Only - Apache Server Setup Apache Web Server 설치 Apache 다운로드 apache 설치를 위해 다음의 URL 에서 안정화 버전(stable) 버전을 다운받습니다. http://httpd.apache.org/download.cgi
  79. 79. 79 - Internal Use Only - Apache Server Setup Apache Web Server 설치 압축 해제 Prefix를 이용하여 apache를 compile 합니다. [jboss@host1 /opt/web ] tar –xvf httpd-2.2.25.tar.gz httpd-2.2.22/ httpd-2.2.22/emacs-style httpd-2.2.22/httpd.dsp httpd-2.2.22/libhttpd.dsp … 중략 httpd-2.2.22/buildconf httpd-2.2.22/.gdbinit [jboss@host1 /opt/web ] [jboss@host1 /opt/web ] cd httpd-2.2.25 [jboss@host1 /opt/web/httpd-2.2.25 ] CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" [jboss@host1 /opt/web/httpd-2.2.25]$ ./configure --prefix=/opt/web/apache2 --enable-modules=so --enable-module=shared --enable-so --enable-rule=SHARED_CORE … 중략
  80. 80. 80 - Internal Use Only - Apache Server Setup Apache Web Server 설치 apache make & make install Prefix를 이용하여 apache를 compile 합니다. [jboss@host1 /opt/web/httpd-2.2.25]$ [jboss@host1 /opt/web/httpd-2.2.25]$ make & make install Making all in srclib Making install in srclib make[1]: Entering directory `/opt/web/httpd-2.2.25/srclib' make[1]: Entering directory `/opt/web/httpd-2.2.25/srclib' Making install in pcre Making all in pcre make[2]: Entering directory `/opt/web/httpd-2.2.25/srclib/pcre' …중략… Installing man pages and online manual mkdir /opt/web/apache2/man mkdir /opt/web/apache2/man/man1 mkdir /opt/web/apache2/man/man8 mkdir /opt/web/apache2/manual make[1]: Leaving directory `/opt/web/httpd-2.2.25' [1]+ Exit 2 make [jboss@host1 /opt/web/httpd-2.2.25]$
  81. 81. 81 - Internal Use Only - Apache Server Setup Apache Web Server 확인 $APACHE_HOME/bin/httpd –V 상세 컴파일 정보 표시 $APACHE_HOME/bin/httpd –v 간략 버전 정보 표시 $APACHE_HOME/bin/httpd –l 컴파일된 모듈 표시 $APACHE_HOME/bin/httpd –t config 파일의 문법 체크
  82. 82. 82 - Internal Use Only - Apache Server Setup apache tomcat Connector 설치 Apache tomcat-connector 다운로드 apache + JBoss 연동을 위해 다음의 URL 에서 tomcat Connector를 다운로드 합니다. http://tomcat.apache.org/download-connectors.cgi
  83. 83. 83 - Internal Use Only - Apache Server Setup apache tomcat Connector 설치 tomcat-connector 압축 해제 tomcat-connector compile tomcat-connector make [jboss@host1 /opt/web]$ ls –al total 1500 drwxr-xr-x 14 jboss jboss 4096 Nov 2 21:55 apache2 -rw-r--r-- 1 root root 1528647 Nov 2 22:03 tomcat-connectors-1.2.37-src.tar.gz [jboss@host1 /opt/web]$ tar -xvf tomcat-connectors-1.2.37-src.tar.gz [jboss@host1 /opt/web]$ cd ./tomcat-connectors-1.2.37-src [jboss@host1 /opt/web/tomcat-connectors-1.2.37-src]$ [jboss@host1 /opt/web/tomcat-connectors-1.2.37-src] $ ./configure --with-apxs=/opt/web/apache2/bin/apxs [jboss@host1 /opt/web/tomcat-connectors-1.2.37-src]$ make
  84. 84. 84 - Internal Use Only - Apache Server Setup apache tomcat Connector 설치 (계속) tomcat-connector make install tomcat-connector 생성 확인 [jboss@host1 /opt/web/tomcat-connectors-1.2.37-src]$ make install Making install in common make[1]: Entering directory `/opt/web/tomcat-connectors-1.2.37-src/native/common' make[1]: Nothing to be done for `install'. make[1]: Leaving directory `/opt/web/tomcat-connectors-1.2.37-src/native/common' Making install in apache-2.0 make[1]: Entering directory `/opt/web/tomcat-connectors-1.2.37-src/native/apache-2.0‘ …중략… make[2]: Leaving directory `/opt/web/tomcat-connectors-1.2.37-src/native' make[1]: Leaving directory `/opt/web/tomcat-connectors-1.2.37-src/native‘ [jboss@KVM2 /opt/web/tomcat-connectors-1.2.37-src/native]$ ls -la /opt/web/apache2/modules total 500 drwxr-xr-x 2 jboss jboss 4096 Nov 3 20:46 . drwxr-xr-x 14 jboss jboss 4096 Nov 2 21:55 .. -rw-rw-r-- 1 jboss jboss 9201 Nov 2 21:55 httpd.exp -rwxr-xr-x 1 jboss jboss 489456 Nov 3 20:46 mod_jk.so
  85. 85. 85 - Internal Use Only - Apache Server Setup mod_jk 설정 conf/mod-jk.conf # Load mod_jk module LoadModule jk_module modules/mod_jk.so # Where to find workers.properties JkWorkersFile conf/workers.properties # Where to put jk logs JkLogFile logs/mod_jk.log JkShmFile logs/mod_jk.shm # Set the jk log level [debug/error/info] JkLogLevel info # Select the log format JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " # JkOptions indicate to send SSL KEY SIZE, JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories +ForwardURICompatUnparsed # JkRequestLogFormat set the request format JkRequestLogFormat "%w %V %T“ # Send everything for context /examples to worker named worker1 (ajp13) JkMount /*.jsp loadbalancer JkMount /*.do loadbalancer JkMount /jkstatus* jkstatus
  86. 86. 86 - Internal Use Only - Apache Server Setup workers.properties 설정 conf/workers.properties # for the mod_jk version 1.2.37 and later worker.list=loadbalancer,jkstatus worker.jkstatus.type=status # default configuration template # worker.template.type=ajp13 worker.template.lbfactor=1 worker.template.maintain=30 worker.template.socket_keepalive=true worker.template.socket_connect_timeout=5000 worker.template.connection_pool_timeout=60 # Define sample6_01 worker.standalone_ha_11.reference=worker.template worker.standalone_ha_11.host=192.168.0.172 worker.standalone_ha_11.port=8109 worker.standalone_ha_21.reference=worker.template worker.standalone_ha_21.host=192.168.0.24 worker.standalone_ha_21.port=8109 # Load-balancing behaviour worker.loadbalancer.type=lb worker.loadbalancer.balance_workers=standalone_ha_11,standalone_ha_21 worker.loadbalancer.sticky_session=1
  87. 87. 87 - Internal Use Only - Apache Server Setup httpd 설정 conf/httpd.conf ServerRoot "/opt/web/apache2 … 중략 … <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> Include conf/mod-jk.conf
  88. 88. 88 - Internal Use Only - Apache Server Setup JBoss Tomcat 설정 standalone-XX.xml or domain.xml <subsystem xmlns="urn:jboss:domain:web:1.4" default-virtual-server="default-host" instance-id="${jboss.node.name}" native="false"> <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> <connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp"/> <virtual-server name="default-host" enable-welcome-root="false"> <alias name="localhost"/> <alias name="example.com"/> </virtual-server> </subsystem>
  89. 89. 89 - Internal Use Only - Apache Server Setup JBoss의 WebApp 세션 복제 설정 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <distributable/> </web-app>
  90. 90. 90 - Internal Use Only - Apache Server Setup 세션 복제 테스트 Application counter를 증가시키는 JSP 파일 – session_test.jsp <%! private int totalHits = 0; %> <% session = request.getSession(true); Integer ival = (Integer)session.getAttribute("simplesession.counter"); if (ival == null) ival = new Integer(1); else ival = new Integer(ival.intValue() + 1); session.setAttribute("simplesession.counter", ival); System.out.println("[SessionTest] count = " + ival ); %> <% Integer cnt = (Integer)application.getAttribute("simplesession.hitcount"); if (cnt == null) cnt = new Integer(1); else cnt = new Integer(cnt.intValue() + 1); application.setAttribute("simplesession.hitcount", cnt); //System.out.println("[SessionTest] count = " + ival ); %>
  91. 91. 91 - Internal Use Only - Apache Server Setup 세션 복제 테스트 브라우저를 통해 웹서버 호출 ex) http://192.168.0.172/test/session_test.jsp
  92. 92. 92 - Internal Use Only - Apache Server Setup limits 튜닝 Linux OS인 경우 /etc/security/limits.conf root soft nofile 65536 root hard nofile 65536 root soft nproc 20680 root hard nproc 20680 root soft stack unlimited root hard stack unlimited jboss - nofile 65536 jboss - memlock 10240 @realtime - rtprio 99
  93. 93. 93 - Internal Use Only - Apache Server Setup kernel parameter 튜닝 Linux OS인 경우 파라미터 기본값 변경값 내용 net.ipv4.neigh.default.unres_qlen 3 100 Increase TCP net.ipv4.tcp_keepalive_time 7200 30 Drop keep-alive time net.ipv4.tcp_fin_timeout 60 10 Drop it so lack of FIN times out quicker net.core.netdev_max_backlog 1000 2500 Increase number of incoming connections backlog net.ipv4.tcp_retries1 3 2 How many times to retry killing an alive TCP connection net.ipv4.tcp_retries2 15 3 How many times to retry killing an alive TCP connection net.ipv4.ip_local_port_range 32768 61000 1024 65000 Increase Local port range net.core.rmem_max 131071 16777216 Max TCP Receive Buffer net.core.rmem_default 109568 16777216 Default TCP Receive Buffer net.core.wmem_max 131071 16777216 Max TCP Send Buffer net.core.wmem_default 109568 16777216 Default TCP Send Buffer net.ipv4.tcp_window_scaling 0 1 Enable really big(>65kb) TCP window scaling net.ipv4.tcp_timestamps 1 0 Turn off timestamp net.ipv4.tcp_sack 1 0 Turn off tcp sack net.ipv4.tcp_orphan_retries 7 0 유저 파일 핸들에 할당되지 않은 연결에 몇번 재시도 할지 vm.swappiness 10 1 Swap 사용량 결정
  94. 94. JBoss Clustering
  95. 95. 95 - Internal Use Only - 목차  WAS Clustering 이란?  JBoss Clustering 개념  JBoss Clustering 설치 방법  Session Replication 설정방법
  96. 96. 96 - Internal Use Only - JBoss Clustering Cluster 란 • 동일업무를 처리하기 위해 서버들의 Logical Group • 같은 서버/다른 서버에 위치 • 클라이언트는 단일 서버로 인식할 수 있도록 함 • Works for  High availability  Load Balancing  Scalability • 주요 기술  Multicast  One-To-Many 통신 Machine 1 Machine 2 Server21 Server12 Server11 Server22 myPartition
  97. 97. 97 - Internal Use Only - JBoss Clustering Clustering의 목적 • 상태복제 (State Replication)  서비스 접근 시 응답속도의 항상성 유지  클러스터 내의 모든 노드들이 상태 접근가능  노드 장애 시 다른 노드에서 클라이언트와 통신하여 서비스 제공 • 부하분산 (Load Balancing)  동시 접속자 증가에 따른 성능저하 방지  요청을 서버들에 전달하여 고가용성 및 성능향상 • 자동 장애복구 (Silent Failover)  서비스 장애 시 정상적인 서비스 보장  시스템 장애 시 클라이언트는 다른 노드로 redirection
  98. 98. 98 - Internal Use Only - JBoss Clustering JBoss Clustering 제공하는 것 • Cluster  동일 서비스에 대한 노드 Set을 정의  Partition – 노드들의 Group  정적으로 정의되지 않음  필요할 때 노드를 join, leave 할 수 있음  Cluster 멤머를 자동 discovery • HA-Singleton  Cluster내에서 같은 시간엔 오직 하나의 노드만 실행할 수 있는 경우
  99. 99. 99 - Internal Use Only - JBoss Clustering Clustering 구성 • 같은 네트워크에서 다른 Cluster를 정의할 수 있다 • JBoss는 Cluster Group을 Partition이라고 함 Partition A JBoss Node 1 JBoss Node 2 JBoss Node 3 Partition B JBoss Node 4 JBoss Node 5 Partition C JBoss Node 1 Clusters and server nodes
  100. 100. 100 - Internal Use Only - JBoss Clustering JBoss Clustering support • 상태 복제 (State Replication) – 아래 항목에 대해 Synchronous & Asynchronous Replication 모드 지원  HTTP Session  Stateful Session Bean  Entity Bean  Plain Old Java Bean (POJO) • 부하 분산 (Load Balancing) 지원  HTTP Load-balancing via Apache Plug-in  EJB Load-balancing via Dynamic Proxy  Message-Driven Bean Load-balancing via Queue • 자동 장애 복구 (Silent Failover) 지원  HTTP failover via Apache Plug-in  EJB failover via Dynamic Proxy
  101. 101. 101 - Internal Use Only - JBoss Clustering JBoss Clustering supported JBossWeb JBossWeb SFSB EJB 3 Entity Bean POJO SFSB EJB 3 Entity Bean POJO JBoss instance JBoss instance Fat Client ApacheThin Client Remoting HTTP mod_jk
  102. 102. 102 - Internal Use Only - JBoss Clustering WAS Clustering 통신 방법 • Cluster 통신 방식  Multicast (one-to-many UDP) 224.0.0.0 ~ 239.255.255.255  Sockets (peer-to-peer TCP) • One-to-many 통신  Cluster-wide JNID 업데이트  Cluster “heartbeats”  Cluster 내의 서버들은 동일한 subnet 상에 위치해야 한다.  Firewall 에 의해 통신이 막힐 수 있다. • Peer-to-peer 통신  원격서버의 non-clustered 객체에 접근할 때  원격서버의 clustered 객체에 접근할 때  HTTP session 상태를 복사, stateful session EJB 상태복사
  103. 103. 103 - Internal Use Only - JBoss Clustering JGroups • Reliable Multicasting Toolkit  Fragmentation  Message retransmission  Ordering  Group membership, membership change notification • 주요기능  Receive a message  Retrieve membership  Disconnect from the group  Close the channel  Be notified when members join, leave (including crashes) Group topology
  104. 104. 104 - Internal Use Only - JBoss Clustering Group Membership • Group Membership  멤버 리스트를 관리  새로운 멤버가 Join하거나 기존 멤버가 Leave할 때 알려준다  각각의 멤버들은 같은 리스트를 가지게 된다  멤버 리스트는 Channel.getView() 함수로 얻어올 수 있다  첫 번째 멤버가 Coordinator가 된다  Coordinator가 Crash되면 2번째 오래된 멤버가 승계한다 • Actions  JOIN  LEAVE  멤버가 Coordinator에게 LEAVE 메시지를 전송한다  Coordinator 가 모든 멤버에 multicasts 한다  CRASH  GMS multicasts new view (not containing crashed member) If (first member) { Coordinator adds new member to list, and multicasts new view (member list) to all members } else { sends JOIN to coordinator }
  105. 105. 105 - Internal Use Only - JBoss Clustering JGroups (Layered) Architecture
  106. 106. 106 - Internal Use Only - JBoss Clustering JBoss Cache • A replicated, transactional, persistency and fine-grained cache system • Transactional or non-transactional  Non-Transactional  Replication after each modification  Transactional  Replication at TX commit  DB isolation levels supported  Support for pluggable TxManagers
  107. 107. 107 - Internal Use Only - JBoss Clustering State Replication • Fine-Grained State Replication  Object 변경 시 Object 전체가 아닌, field level의 변경 사항만을 복제 • Synchronous VS. Asynchronous  상태 복제를 동기화할 경우, 노드 장애 시 항상 상태 정보를 최신으로 유지할 수 있으나 성능 은 떨어짐  어느 정도의 상태 정보 손실이 발생해도 문제가 없다면 상태 정보 복제를 비동기화해서 성능 을 개선 (동기화 주기 설정 가능)
  108. 108. 108 - Internal Use Only - JBoss Clustering SFSB Replications • After each invocation of a SFSB, if the bean changed, a message is broadcast to the cluster • The message contains the serialized state of the session bean • The broadcast operation is synchronous (blocking) with acknowledgements from all the nodes of the cluster TreeCacheAOP SFSB 2. register1. new 3. Notify to other node TreeCacheAOP 5. update4. Update state 6. Notify to other node TreeCacheAOP Automatic TreeCacheAOP Notification
  109. 109. 109 - Internal Use Only - JBoss Clustering Load-balancer • HTTP-based services do not require the client to download anything • External load balancer is required to process all requests and dispatch them to server nodes in the cluster Load-balancer JBoss Node 1 JBoss Node 2 Web Browser Sessions Replications 1 1.2 1.1 1.3
  110. 110. 110 - Internal Use Only - JBoss Clustering JBoss Load-balancing • HTTP Load-balancing  L4 또는 Apache Plug-in (mod_jk)를 사용  Apache Plug-in (mod_jk) Load-balancing 정책  Weighted Round Robin, Lowest Session, Lowest Network Traffic, Lowest Current Load • EJB Load-balancing(EJB Stub (Proxy)에서 제어)  Load-balancing 정책  Apache Plug-in (mod_jk) Load-balancing 정책  Round Robin – 매번 다른 노드를 호출 (Stateless Session Bean)  First Available – 처음 선택된 노드를 계속 호출 (Stateful Session Bean, Entity Bean)  First Available with Identical All Proxies – 처음 선택된 노드를 계속 호출하며, 동일한 EJB를 호출하는 모든 클라이언트는 이 노드를 호출 • Message-Driven Bean Load-balancing via Queue
  111. 111. 111 - Internal Use Only - JBoss Clustering JBoss Load-balancing • HTTP Load-balancing • EJB Load-balancing(EJB Stub (Proxy)에서 제어) DataJBoss Application Server 부하분산 흐름도 Load Balancer Source 1 2 3
  112. 112. 112 - Internal Use Only - JBoss Clustering Failover • HTTP Failover  L4, Apache Plug-in (mod_jk)에서 제어  노드 장애 발생 시 다른 노드로 요청을 전달 • EJB failover  EJB Stub (Dynamic Proxy)에서 제어  노드 장애 발생 시 다른 노드로 요청  모든 노드가 장애가 발생할 경우 Client에게 Exception 전달  장애가 발생한 노드는 Cluster에서 제외  변경된 Cluster 구성 정보는 EJB 응답 메시지에 추가되어 Stub으로 전달
  113. 113. 113 - Internal Use Only - JBoss Clustering JBoss의 WebApp 세션 복제 설정 <?xml version="1.0"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <distributable/> <!-- ... --> </web-app> <jboss-web> <replication-config> <replication-trigger>SET_AND_NON_PRIMITIVE_GET</replication-trigger> <replication-granularity>SESSION</replication-granularity> <replication-field-batch-mode>true</replication-field-batch-mode> </replication-config> </jboss-web> • web.xml • jboss-web.xml
  114. 114. 114 - Internal Use Only - OPEN SHARE CONTRIBUTE ADOPT REUSE

×