1.4. 브로커 구성 파일 모듈화
공통 구성 설정을 공유하는 브로커가 여러 개 있는 경우 별도의 파일에 공통 구성을 정의한 다음 각 브로커의 broker.xml
구성 파일에 이러한 파일을 포함할 수 있습니다.
브로커 간에 공유할 수 있는 가장 일반적인 구성 설정은 다음과 같습니다.
- 주소
- 주소 설정
- 보안 설정
프로세스
공유하려는 각
broker.xml
섹션에 대해 별도의 XML 파일을 생성합니다.각 XML 파일은
broker.xml
의 단일 섹션(예: 주소 또는 주소 설정 중 하나)만 포함할 수 있습니다. 최상위 요소도 요소 네임스페이스(xmlns="urn:activemq:core
")를 정의해야 합니다.이 예제에서는
my-security-settings.xml
:에 정의된 보안 설정 구성을 보여줍니다.my-security-settings.xml
<security-settings xmlns="urn:activemq:core"> <security-setting match="a1"> <permission type="createNonDurableQueue" roles="a1.1"/> </security-setting> <security-setting match="a2"> <permission type="deleteNonDurableQueue" roles="a2.1"/> </security-setting> </security-settings>
-
공통 구성 설정을 사용해야 하는 각 브로커에 대해 <
broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. 열린 각
broker.xml
파일에 대해 다음을 수행합니다.broker.xml
시작 시 <configuration> 요소에서 다음 행이 표시되는지 확인합니다.xmlns:xi="http://www.w3.org/2001/XInclude"
공유 구성 설정이 포함된 각 XML 파일에 대한 XML 포함을 추가합니다.
이 예제에는
my-security-settings.xml
파일이 포함되어 있습니다.broker.xml
<configuration ...> <core ...> ... <xi:include href="/opt/my-broker-config/my-security-settings.xml"/> ... </core> </configuration>
필요한 경우
broker.xml
의 유효성을 검사하고 XML이 스키마에 대해 유효한지 확인합니다.모든 XML 검증기 프로그램을 사용할 수 있습니다. 이 예에서는
xmllint
를 사용하여artemis-server.xsl
스키마에 대해broker.xml
의 유효성을 검사합니다.$ xmllint --noout --xinclude --schema /opt/redhat/amq-broker/amq-broker-7.2.0/schema/artemis-server.xsd /var/opt/amq-broker/mybroker/etc/broker.xml /var/opt/amq-broker/mybroker/etc/broker.xml validates
추가 리소스
- XML 포함(XIncludes)에 대한 자세한 내용은 https://www.w3.org/TR/xinclude/ 을 참조하십시오.
1.4.1. 모듈식 구성 파일 다시 로드
브로커가 구성 변경 사항을 주기적으로 확인할 때( 구성-file-refresh-period
에 지정된 빈도에 따라) xi:include
를 통해 broker.xml
구성 파일에 포함된 구성 파일에 대한 변경 사항을 자동으로 감지 하지 않습니다. 예를 들어 broker.xml
에 my-address-settings.xml
이 포함되어 있고 my-address-settings.xml
에 대한 구성을 변경한 경우 브로커는 my-address-settings.xml
의 변경 사항을 자동으로 탐지하지 않고 구성을 다시 로드합니다.
broker.xml
구성 파일과 그 내에 포함된 수정된 구성 파일을 강제로 다시 로드하려면 broker.xml
구성 파일의 "마지막 수정" 타임 스탬프가 변경되었는지 확인해야 합니다. 표준 Linux touch
명령을 사용하여 다른 변경 없이 broker.xml
의 마지막 수정 타임스탬프를 업데이트할 수 있습니다. 예를 들면 다음과 같습니다.
$ touch -m <broker_instance_dir>/etc/broker.xml
또는 관리 API를 사용하여 브로커를 강제로 다시 로드할 수 있습니다. ActiveMQServerControl
의 관리 작업 reloadConfigurationFile()
을 사용하여 구성 파일을 다시 로드할 수 있습니다( ObjectName
org.apache.activemq.artemis:broker="BROKER_NAME"
또는 리소스 이름 서버
)
추가 리소스
- 관리 API 사용 방법을 알아보려면 AMQ Broker 관리에서 관리 API 사용을 참조하십시오.
1.4.2. 외부 XML 엔티티(XXE) 처리 비활성화
broker.xml
파일에 포함된 별도의 파일에서 브로커 구성을 모듈화하지 않으려면 XXE 처리를 비활성화하여 AMQ Broker를 보안 취약점으로부터 보호할 수 있습니다. 모듈식 브로커 구성이 없는 경우 XXE 처리를 비활성화하는 것이 좋습니다.
프로세스
-
<
;broker_instance_dir>/etc/artemis.profile
파일을 엽니다. -Dartemis.disableXxe
를 Java 시스템 인수의JAVA_ARGS
목록에 추가합니다.-Dartemis.disableXxe=true
-
Artemis
.profile
파일을 저장합니다.