설정
경로 정보
WildFly 설정이나 스크립트를 수정할 때 자주 참조하는 주요 경로 속성이다. 실제 값은 실행 모드, 설치 위치, 실행 사용자에 따라 달라질 수 있다.
- jboss.home - WildFly의 기본(root) 디렉토리
- user.home - 사용자 홈 디렉토리
- user.dir - 사용자의 현재 디렉토리
- java.home - 자바 디렉토리
- jboss.server.base.dir - WildFly의 각 인스턴스 디렉토리
- jboss.server.data.dir - 데이터 파일 디렉토리
- jboss.server.log.dir - 로그 디렉토리
- jboss.server.tmp.dir - 임시 디렉토리
- jboss.domain.servers.dir - WildFly의 각 인스턴스 작업 디렉토리(도메인 모드 사용 시에만 해당)
Listen IP Address 변경
기본적으로 WildFly는 127.0.0.1에서 Listen하고 있다. 외부에서 서비스에 접근해야 한다면 실제 Service IP Address로 변경해야 한다.
09:02:28,142 INFO [org.wildfly.extension.undertow] (MSC service thread 1-1) WFLYUT0006: Undertow HTTP listener default listening on 127.0.0.1:8080 09:02:30,433 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management 09:02:30,434 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
standalone.xml에서 127.0.0.1을 찾아 서비스 IP로 변경한다. 운영 환경에서는 서비스용 주소와 관리 콘솔용 주소를 분리하는 것이 일반적이므로, jboss.bind.address와 jboss.bind.address.management를 구분해서 확인한다.
<wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>
<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
<inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
재기동 후 로그를 확인한다.
09:27:29,056 INFO [org.wildfly.extension.undertow] (MSC service thread 1-1) WFLYUT0006: Undertow HTTP listener default listening on 10.0.0.30:8080 09:27:30,996 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://192.168.1.30:9990/management 09:27:31,003 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://10.0.0.30:9990
로그에서 HTTP listener와 management interface가 의도한 IP로 바인딩되었는지 확인한다. 방화벽이나 보안 그룹을 사용하는 환경이라면 해당 포트가 외부에서 접근 가능한지도 함께 점검한다.
Listen 포트 변경
standalone.xml의 다음 부분을 찾는다.
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
변경하고자 하는 port-offset을 지정한다.
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:1000}">
예를 들어 위와 같이 port-offset이 1000인 경우 HTTP 기본 포트는 8080 + 1000인 9080이 된다. HTTPS, 관리 포트 등 같은 socket-binding-group에 속한 다른 포트에도 동일한 offset이 적용되므로 충돌 여부를 함께 확인해야 한다.
소스 디렉토리 변경
standalone.xml의 Undertow 설정에서 기본 정적 콘텐츠 디렉토리를 변경한다. 아래 설정의 welcome-content handler가 루트 경로(/)에 연결되어 있다.
<subsystem xmlns="urn:jboss:domain:undertow:3.0">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http" redirect-socket="https"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
</host>
</server>
<servlet-container name="default">
<jsp-config/>
<websockets/>
</servlet-container>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
</handlers>
<filters>
<response-header name="server-header" header-name="Server" header-value="WildFly/10"/>
<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
</filters>
</subsystem>
예를 들어 소스 디렉토리를 /src/lgtwins로 변경하려면 다음과 같이 수정한다.
<handlers>
<file name="welcome-content" path="/src/lgtwins"/>
</handlers>
수정 후 WildFly를 재기동하고 브라우저나 curl로 루트 URL에 접근해 변경한 디렉토리의 콘텐츠가 응답되는지 확인한다. 해당 디렉토리를 WildFly 실행 사용자가 읽을 수 있는지도 함께 확인한다.