미들웨어/Jboss

JBoss EAP 자격증 취득 3 - 독립 실행형 서버 구성(1)

우엉잇 2024. 7. 9. 13:56

 

1. JBoss EAP 독립 실행형 서버로 구성

 

 1.1. standalone.xml 구서 파일

 standalone.xml의 일반 구조는 아래와 같음 

<server xmlns="urn:jboss:domain:16.0">
    <extensions>
     ...list of extensions here
    </extensions>

    <management>
     ...management interfaces defined here
    </management>

    <profile>
     ...list of subsystems and their configurations
    </profile>

    <interfaces>  
     ...interface definitions
    </interfaces>

    <socket-binding-group> 
     ...socket binding definitions
    </socket-binding-group>

 </server>

 

 1.2. 확장 프로그램 

 

확장 프로그램은 서버의 핵심 기능을 확장한 모듈
확장 기능은 모듈을 기반으로 하여 하나 이상의 하위 시스템을 정의

    <extensions>
        <extension module="org.jboss.as.clustering.infinispan"/>
        <extension module="org.jboss.as.connector"/>
        <extension module="org.jboss.as.deployment-scanner"/>
        <extension module="org.jboss.as.ee"/>
        <extension module="org.jboss.as.ejb3"/>
        <extension module="org.jboss.as.jaxrs"/>
        <extension module="org.jboss.as.jdr"/>
        <extension module="org.jboss.as.jmx"/>
        <extension module="org.jboss.as.jpa"/>
        <extension module="org.jboss.as.jsf"/>
        <extension module="org.jboss.as.logging"/>
        <extension module="org.jboss.as.mail"/>
        <extension module="org.jboss.as.naming"/>
        <extension module="org.jboss.as.pojo"/>
        <extension module="org.jboss.as.remoting"/>
        <extension module="org.jboss.as.sar"/>
        <extension module="org.jboss.as.security"/>
        <extension module="org.jboss.as.transactions"/>
        <extension module="org.jboss.as.webservices"/>
        <extension module="org.jboss.as.weld"/>
        <extension module="org.wildfly.extension.batch.jberet"/>
        <extension module="org.wildfly.extension.bean-validation"/>
        <extension module="org.wildfly.extension.clustering.web"/>
        <extension module="org.wildfly.extension.core-management"/>
        <extension module="org.wildfly.extension.discovery"/>
        <extension module="org.wildfly.extension.ee-security"/>
        <extension module="org.wildfly.extension.elytron"/>
        <extension module="org.wildfly.extension.health"/>
        <extension module="org.wildfly.extension.io"/>
        <extension module="org.wildfly.extension.metrics"/>
        <extension module="org.wildfly.extension.request-controller"/>
        <extension module="org.wildfly.extension.security.manager"/>
        <extension module="org.wildfly.extension.undertow"/>
    </extensions>

 

1.3. 관리 인스턴스

 

원격 클라이언트에서 인터페이스를 관리하기 위해 EAP 인스턴스에 연결

HTTP 인터페이스 : 관리 콘솔에 대한 액세스를 제공
네이티브 인터페이스 : 기본 인터페이스를 통해 CLI 도구에서 사용하는 전용 바이너리 프로토콜로 관리 작업을 실행 할 수 있게 함

 

<management> 요소는 이러한 인터페이스를 사용할 수 있도록 하는 설정이 포함되어 있음

 

실제 설정 파일은 아래와 같이 설정 되어 있음.

        <management-interfaces>
            <http-interface security-realm="ManagementRealm">
                <http-upgrade enabled="true"/>
                <socket-binding http="management-http"/>
            </http-interface>
        </management-interfaces>

 

네이티브 인터페이스를 사용 하기위해선 아래와 같이 설정을 추가해줘야함.

        <management-interfaces>
            <http-interface security-realm="ManagementRealm">
                <socket-binding http="management-http"/>
            </http-interface>
            <native-interface security-realm="managementrealm">
                </socket-binding native ="management-native">
            </native -interface>
        </management-interfaces>

 

하위 바인딩 설정이 필요함

        <socket-binding name="management-native" interface="management" port="${jboss.management.https.port:9999}"/>

 

더보기

* 참고 
http 인스턴스를 제거 하면 http 인스페이스를 통한 액세스를 제한 할 수 있음

 security-realm 태그 하위에 있는 ApplicationRealm 는 EAP에 원격으로 액세스해야 하는 클라이언트 애플리케이션에 사용 하며, mgmt-users.properties 텍스트 파일을 참조 함 (JBoss 경우 Console을 잘 사용하지 않기 때문에 거의 사용 X)

            <security-realms>
                (중략)
                <properties-realm name="ManagementRealm">
                    <users-properties path="mgmt-users.properties" relative-to="jboss.server.config.dir" digest-realm-name="ManagementRealm"/>
                    <groups-properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/>
                </properties-realm>

 

 1.4. 프로필과 하위 시스템

 프로필에 하위 시스템을 추가하는 목적은 두가지 임.
 1) 하위 시스템이 프로필 내에 표시되는 경우 해당 프로플을 사용하여 서버에서 해당 하위 시스템을 사용할 수 있음
 2) 하위 시스템에서 사용자의 특정 요구에 맞게 확장 기능을 구성 할 수 있음.

 

    <profile>
        <subsystem xmlns="urn:jboss:domain:logging:8.0">
         ...list of logging here
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:batch-jberet:2.0">
         ...list of batch-jberet here
        </subsystem>
        <subsystem xmlns="urn:jboss:domain:datasources:6.0">
         ...list of datasources here
        </subsystem>
    </profile>

 

더보기

 * 참고
 EAP 독립 실행형 서버를 시작할 때 사용 할 수 있는 프로필은 한 개만 있음.
 섹션에 표시되는 경우에만 프로필을 추가 할 수 있음.

 

2. 인터페이스 및 소켓 바인딩 그룹 구성

2.1. 인터페이스
소켓을 바인딩 할 수 있는 네트워크 인터페이스, IP 주소 또는 호스트 이름에 대한 논리적 이름

   <interfaces>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
        </interface>
        <interface name="public">
            <inet-address value="${jboss.bind.address:127.0.0.1}"/>
        </interface>
    </interfaces>

 

해당 주소를 변경하기 위해서는 아래 옵션을 통해 변경이 가능함

/product/was/jboss-eap-7.4/bin/standalone.sh -Djboss.home.dir=/product/was/jboss-eap-7.4 -Djboss.server.base.dir=/product/was/domains/eap -Djboss.bind.address.management=192.168.56.101 -Djboss.bind.address=192.168.56.101 &