웹사이트 검색

WildFly 8 - 새롭게 개선된 Linux용 JBoss 애플리케이션 서버


우리 모두 알고 있듯이 JBoss AS의 이름이 WildFly로 변경되었습니다. 많은 새로운 기능이 추가되었고 많은 부분이 업그레이드되었습니다. 드디어 WildFly 8.0.0 Final이 2014년 2월 11일에 출시되었습니다. WildFly 프로젝트의 리드 Jason Greene도 같은 내용을 발표했습니다.

WildFly 8Red HatJava EE 7 호환 오픈 소스 애플리케이션 서버입니다. 주요 기능은 아래와 같습니다.

자바 EE 7 호환성

가장 큰 변화는 이제 WildFly 8이 공식 Java EE7 인증을 받았다는 것입니다.

고성능 웹 서버

Undertow는 Java로 작성된 새로운 고성능 웹 서버입니다. 이제 이것이 WildFly 8에서 구현되었습니다. 이는 실제로 높은 처리량과 확장성을 위해 설계되었으며 수백만 개의 연결을 처리할 수 있습니다. Undertow의 수명주기는 임베딩 애플리케이션에 의해 완전히 제어됩니다. 이는 1MB 크기의 코어 jar와 4MB 미만의 힙 공간을 사용하는 임베디드 서버를 사용하여 매우 가볍습니다. 정말 대단해요.

3포트 축소

HTTP 업그레이드를 지원하는 Undertow를 사용하고 있기 때문에 단일 HTTP 포트를 통해 여러 프로토콜을 다중화할 수 있습니다. WildFly 8은 거의 모든 프로토콜을 두 개의 HTTP 포트(하나는 관리 포트, 다른 하나는 애플리케이션 포트)를 통해 멀티플렉싱하도록 이동했습니다. 이는 단일 서버에서 수백에서 수천 개의 인스턴스를 실행하는 클라우드 제공업체(예: OpenShift)에게 실제로 큰 변화이자 이점입니다. 전체적으로 구성을 위한 두 개의 기본 포트가 있으며 해당 포트는 9990(웹 관리 콘솔) 및 8080(응용 프로그램 콘솔)입니다.

관리 역할 기반 액세스 제어 및 감사

이는 WildFly 8에 구현된 새롭고 흥미로운 기능입니다. 이를 사용하여 다양한 사용자를 생성하고 요구 사항에 따라 해당 사용자를 다양한 역할에 할당할 수 있습니다. 나중에 스크린샷으로 보여드리겠습니다.

벌채 반출

이제 관리 API는 서버에서 사용 가능한 로그 파일을 나열하고 보는 기능을 지원합니다. 이제 컨테이너 로깅을 건너뛰려는 모든 종류의 배포에 사용할 수 있는 "add-logging-api-dependents"라는 속성이 있습니다. 이렇게 하면 암시적 서버 로깅 종속성 추가가 비활성화됩니다. 또 다른 옵션이 있습니다. 즉, jboss-deployment-structure.xml을 사용하여 로깅 하위 시스템을 제외할 수 있습니다. 이를 사용하면 로깅 하위 시스템이 배포를 진행하는 것을 중지하는 데 도움이 됩니다.

배포 내에서 로깅 구성 파일 처리를 활성화/비활성화하기 위해 다른 매개변수(예: use-deployment-logging-config)를 사용할 수도 있습니다.

참고: 로깅별 비활성화에 사용했던 시스템 속성은 이 버전에서 더 이상 사용되지 않습니다.

클러스터링

다시 한번 큰 변화는 하나의 클러스터링입니다. 클러스터링 지원과 관련된 모든 기능은 WildFly 8에서 변경되었으며 여기에는 다음이 포함됩니다.

  1. 분산 웹 세션은 새로운 Java 기반 웹 서버(예: Undertow)를 통해 최적화되었습니다.
  2. Undertow에 대한 mod_cluster 지원.
  3. 최적화된 분산 SSO(Single Sign-On) 기능 및 Undertow 지원.
  4. 신규/최적화된 분산 @Stateful EJB 캐싱 구현.
  5. WildFly 8에는 새로운 공개 클러스터링 API가 추가되었습니다.
  6. 싱글톤 서비스를 생성하기 위해 새로운 공개 API를 제공합니다.
CLI 개선

CLI 구성도 개선되었습니다. 모든 관리자는 CLI 작업을 좋아합니다.) 이제 특정 서버에 대한 별칭을 만든 다음 connect 명령을 사용하여 해당 서버에 연결할 때마다 해당 별칭을 사용할 수 있습니다.

WildFly 8에는 여전히 많은 개선 사항과 업데이트가 이루어졌습니다. 다음에서 모든 내용을 확인할 수 있습니다.

  1. http://wildfly.org/news/2014/02/11/WildFly8-Final-Released/

Linux에 WildFly 8 설치

설치를 진행하기 전에 시스템에 Java EE 7이 설치되어 있는지 확인하세요. WildFly 8은 이전 버전에서는 작동하지 않습니다. Linux 시스템에 Java EE 7을 설치하려면 아래 가이드를 따르십시오.

  1. Linux에 JDK/JRE 7u25 설치

1단계: WildFly 8 다운로드

다음 링크를 사용하여 최신 WildFly zip 파일을 다운로드하세요.

  1. http://download.jboss.org/wildfly/8.0.0.Final/wildfly-8.0.0.Final.zip

또한 'wget' 명령을 사용하여 명령줄에서 직접 다운로드할 수도 있습니다.

[root@tecmint]# wget http://download.jboss.org/wildfly/8.0.0.Final/wildfly-8.0.0.Final.zip

zip 파일을 원하는 위치(예: 내 경우에는 '/data/')에 복사하고 'unzip' 명령을 사용하여 압축을 풉니다.

[root@tecmint]# cp wildfly-8.0.0.Final.zip /data/
[root@tecmint]# cd /data/
[root@tecmint data]# unzip wildfly-8.0.0.Final.zip

2단계: 환경 변수 설정

이제 일부 환경 변수를 설정하십시오. 시스템 단위로 설정하거나 구성 파일 내에서 설정할 수 있습니다. 여기서는 'bin' 폴더에 있는 standalone.shstandalone.conf 구성 파일 내에서 설정합니다.

[root@tecmint data]# cd wildfly-8.0.0.Final
[root@tecmint data]# cd bin/

standlone.sh/standlone.conf 파일에 다음 두 줄을 추가합니다. WildFly 설치 위치와 Java 홈 위치를 지정하세요.

JBOSS_HOME=”/data/wildfly-8.0.0.Final”
JAVA_HOME=”/data/java/jre7/bin/java”

참고: 전체 시스템에 대해 '/etc/profile' 파일에서 설정할 수 있습니다.

3단계: WildFly 8 시작

이제 서버를 시작합니다. 즉, 독립형 모드의 경우 'standalone.sh'를 사용하고 도메인 모드의 경우 'domain.sh'를 사용합니다.

[root@tecmint bin]# ./standalone.sh
[root@tecmint bin]# ./domain.sh

하지만 여기서는 독립형 모드로 시작합니다. 기본적으로 'standalone.xml' 파일로 시작되지만 '-server-config' 옵션을 사용하여 다른 구성으로 시작할 수도 있습니다.

아래와 같이 'standalone-full-ha.xml'으로 서버를 시작하고 이 파일은 "$JBOSS_HOME/standalone(profile)/configuration/"에 있습니다.

[root@tecmint bin]# ./standalone.sh --server-config standalone-full-ha.xml
샘플 출력
Calling "/data/wildfly-8.0.0.Final/standalone/configuration/standalone.conf"
Setting JAVA property to "/data/java/jre7/bin/java"
===============================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: "/data/wildfly-8.0.0.Final"

  JAVA: "/data/java/jre7/bin/java"

  JAVA_OPTS: "-client -Dprogram.name=standalone.sh -Xms64M -Xmx512M -XX:MaxPerm
Size=256M -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman"

===============================================================================

13:55:26,403 INFO  [org.jboss.modules] (main) JBoss Modules version 1.3.0.Final
13:55:33,812 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.0.Final
13:55:35,481 INFO  [org.jboss.as] (MSC service thread 1-1) JBAS015899: WildFly 8.0.0.Final "WildFly" starting
13:55:58,646 INFO  [org.jboss.as.server] (Controller Boot Thread) JBAS015888: Creating http management service using socket-binding (management-http)
...........
13:56:22,778 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:9990/management
13:56:22,794 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
13:56:22,794 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: WildFly 8.0.0.Final "WildFly" started in 64534ms - Started 229 of 356 services (172 services are lazy, passive or on-demand)

4단계: WildFly 8에 액세스하기

이제 브라우저에서 'http://localhost:8080'(기본 구성된 http 포트를 사용하는 경우)을 지정하여 시작 화면을 볼 수 있습니다.

여기에서 WildFly 커뮤니티 문서 가이드와 향상된 웹 기반 관리 콘솔 액세스에 액세스할 수 있습니다.

5단계: WildFly 8 관리

WildFly 8은 실행 중인 인스턴스를 관리하기 위한 두 개의 관리 콘솔을 제공합니다.

    1. 웹 기반 관리 콘솔
    2. 명령줄 인터페이스

관리 콘솔에 연결하거나 명령줄을 사용하여 원격으로 연결하기 전에 bin 폴더에 있는 'add-user.sh' 스크립트를 사용하여 새 사용자를 생성해야 합니다.

다음으로 'bin' 디렉터리로 이동하여 add-user.sh에 'JBOSS_HOME'을 설정합니다(시스템 기반에 변수가 설정되지 않은 경우). 아래와 같이 사용자를 생성합니다.

[root@tecmint bin]# ./add-user.sh

스크립트를 시작하면 새 사용자를 추가하는 프로세스가 안내됩니다.

샘플 출력
What type of user do you wish to add?
 a) Management User (mgmt-users.properties)
 b) Application User (application-users.properties)
(a):
Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : admin
The username 'admin' is easy to guess
Are you sure you want to add user 'admin' yes/no? yes
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
 - The password should not be one of the following restricted values {root, admin, administrator}
 - The password should contain at least 8 characters, 1 alphanumeric character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
 - The password should be different from the username
Password :
Re-enter Password :
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]:
About to add user 'admin' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'admin' to file '/data/wildfly-8.0.0.Final/standalone/configuration/mgmt-users.properties'
Added user 'admin' to file /data/wildfly-8.0.0.Final/domain/configuration/mgmt-users.properties'
Added user 'admin' with groups  to file /data/wildfly-8.0.0.Final/standalone/configuration/mgmt-groups.properties'
Added user 'admin' with groups  to file /data/wildfly-8.0.0.Final/domain/configuration/mgmt-groups.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 
Press any key to continue . . .

이제 'http://localhost:9990/console'에서 웹 기반 관리 콘솔에 액세스하고 새로 생성된 사용자 이름과 비밀번호를 입력하여 관리 콘솔에 직접 액세스하세요.

로그인 후 첫 화면입니다.

CLI에서 서버를 처리하려면 다음을 제공하는 'bin' 디렉토리에서 'jboss-cli.sh' 스크립트를 실행하세요. 웹 기반 UI를 통해 동일한 기능을 사용할 수 있습니다.

[root@tecmint bin]# cd bin
[root@tecmint bin]# ./jboss-cli.sh --connect
Connected to standalone controller at localhost:9999

자세한 내용은 https://docs.jboss.org/author/display/WFLY8/Documentation에서 공식 WildFly 8 문서를 참조하세요.

추가 읽기: WildFly(JBoss AS) – GUI를 사용하여 CLI에 액세스하고 관리하는 방법