웹 애플리케이션을 배포할 때, URL 뒤에 붙는 프로젝트명(예:
/MyApp) 없이 도메인 자체(예:http://localhost:8080/)로 접속하도록 설정하는 방법을 정리합니다. 애플리케이션 설정 변경과 JBoss 서버의 기본 Welcome Page 비활성화 작업이 필요합니다.
0. 배경 지식 (Context)
기본적으로 JBoss EAP는 루트 경로(/)에 "Welcome to JBoss"라는 기본 환영 페이지가 매핑되어 있습니다. 사용자의 애플리케이션을 루트 경로에 배포하려면, 이 기본 환영 페이지 기능을 끄고 애플리케이션이 그 자리를 차지하도록 설정해야 합니다.
Test Environment
- OS: CentOS 7.2
- WAS: JBoss EAP 6.4
1. 애플리케이션 설정 (jboss-web.xml)
애플리케이션(WAR) 내부의 설정 파일을 통해 "이 앱은 루트 컨텍스트(/)를 사용하겠다"고 선언합니다.
파일 생성 및 수정
- 위치:
[WAR_FILE]/WEB-INF/jboss-web.xml - 파일이 없다면 새로 생성하십시오.
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<!-- Context Root를 / 로 지정 -->
<context-root>/</context-root>
</jboss-web>
2. 서버 설정 (domain.xml / standalone.xml)
애플리케이션 설정만으로는 부족합니다. JBoss 웹 서브시스템(Web Subsystem) 설정에서 enable-welcome-root 옵션을 false로 변경하여 기본 페이지를 비활성화해야 합니다.
설정 파일 선택
- Domain Mode:
[EAP_HOME]/domain/configuration/domain.xml - Standalone Mode:
[EAP_HOME]/standalone/configuration/standalone.xml
수정 내용
도메인 모드의 경우, 현재 서버 그룹이 사용 중인 프로파일(Profile)(예: ha, full, full-ha)을 정확히 찾아 수정해야 합니다.
<!-- 해당 프로파일 내의 web 서브시스템 검색 -->
<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<!-- 핵심 수정 부분: enable-welcome-root를 false로 변경 -->
<virtual-server name="default-host" enable-welcome-root="false">
<alias name="localhost"/>
<alias name="example.com"/>
</virtual-server>
</subsystem>
주의 (Warning):
enable-welcome-root="true"인 상태에서 애플리케이션의 Context Root를 /로 설정하고 배포하면, JBoss 기동 시 "Context / is already in use" 에러가 발생하며 배포에 실패합니다.
3. 적용 및 검증 (Verification)
설정 변경 후에는 서버 재기동이 필요합니다.
재기동 및 접속 테스트
- JBoss 서버를 재기동합니다.
- 브라우저 주소창에
http://[서버IP]:8080/을 입력합니다. - JBoss 기본 환영 페이지가 아닌, 내가 배포한 애플리케이션의 메인 페이지가 뜨는지 확인합니다.
Next Step:
루트 컨텍스트 설정이 완료되었다면, Apache 웹 서버와의 연동 시 mod_jk의 JkMount 설정도 /*로 변경하여 모든 요청을 WAS로 넘기도록 조정해야 합니다.