WAS WildFly 설치 방법과 기본 설정 순서

반응형
WAS WildFly 설치 방법과 기본 설정 순서

WAS WildFly 설치 방법과 기본 설정 순서

WildFly는 Java 기반 애플리케이션을 실행하기 위한 오픈소스 WAS입니다. 설치 자체는 압축 파일을 내려받아 해제한 뒤 실행 스크립트를 실행하는 방식으로 단순하지만, 운영 환경에서는 Java 버전, 실행 계정, 포트, 관리자 계정, 배포 디렉터리, 서비스 등록까지 함께 확인해야 합니다.

설치 전 확인할 사항

WildFly 설치 전에는 서버 운영체제, Java 버전, 설치 경로, 사용할 포트, 배포 방식부터 정리하는 것이 좋습니다. 개발 테스트 환경에서는 압축 해제 후 바로 실행해도 되지만, 운영 환경에서는 전용 계정과 고정 설치 경로를 사용하는 것이 안전합니다.

항목 확인 내용
Java WildFly 실행에 필요한 JDK가 설치되어 있어야 합니다. 운영 기준에서는 LTS 버전 JDK 사용을 권장합니다.
설치 경로 Linux는 /opt/wildfly, Windows는 C:\wildfly처럼 관리하기 쉬운 경로를 사용하는 것이 좋습니다.
실행 계정 root 또는 Administrator 직접 실행보다 WildFly 전용 계정 사용이 안전합니다.
기본 포트 애플리케이션 접속은 8080, 관리 콘솔은 9990 포트를 기본으로 사용합니다.
운영 방식 단일 서버 운영은 standalone, 여러 서버 중앙 관리는 domain 모드를 검토합니다.
실무 기준으로 보면 WildFly 설치는 “압축 해제”보다 “운영 기준에 맞는 실행 구조를 만드는 작업”에 가깝습니다.
Java 경로, 실행 계정, 포트 정책, 로그 경로, 재시작 방식까지 함께 정리해야 장애 대응이 쉬워집니다.

Java 설치 확인

WildFly는 Java 기반 WAS이므로 먼저 JDK 설치 상태를 확인해야 합니다. 서버에 Java가 설치되어 있는지 다음 명령어로 확인합니다.

java -version

Linux 환경에서 OpenJDK가 없는 경우 패키지 관리자를 통해 설치할 수 있습니다. 배포판에 따라 패키지명은 다를 수 있으므로 실제 운영 서버 기준에 맞게 확인해야 합니다.

Rocky Linux, AlmaLinux, RHEL 계열 예시

sudo dnf install -y java-21-openjdk java-21-openjdk-devel

Ubuntu, Debian 계열 예시

sudo apt update
sudo apt install -y openjdk-21-jdk

설치 후 다시 Java 버전을 확인합니다.

java -version
javac -version
WildFly 버전에 따라 권장 Java 버전이 달라질 수 있습니다.
운영 환경에서는 WildFly 버전과 JDK 버전을 함께 고정하고, 패치 전에는 반드시 테스트 서버에서 기동 여부를 확인하는 것이 좋습니다.

Linux에서 WildFly 설치하기

Linux 서버에서는 WildFly 압축 파일을 내려받아 원하는 경로에 해제한 뒤 실행합니다. 예시는 /opt 하위에 설치하는 방식입니다.

설치 디렉터리 이동

cd /opt

WildFly 압축 파일 다운로드

실제 파일명과 버전은 다운로드 시점의 안정 버전에 맞게 변경해야 합니다.

sudo wget https://github.com/wildfly/wildfly/releases/download/40.0.0.Final/wildfly-40.0.0.Final.tar.gz

압축 해제

sudo tar -xvzf wildfly-40.0.0.Final.tar.gz

설치 경로를 고정 이름으로 변경

sudo mv wildfly-40.0.0.Final wildfly

이후 관리 편의를 위해 /opt/wildfly 경로를 WildFly 홈 디렉터리로 사용합니다.

cd /opt/wildfly
ls -al

WildFly 디렉터리 구조 이해

WildFly를 설치한 뒤에는 주요 디렉터리의 역할을 알아두는 것이 좋습니다. 장애 분석이나 배포 작업 시 자주 확인하는 경로가 정해져 있기 때문입니다.

경로 역할
bin WildFly 실행 스크립트와 관리자 계정 생성 스크립트가 있습니다.
standalone standalone 모드 설정, 로그, 배포 파일이 위치합니다.
standalone/configuration standalone.xml 등 주요 설정 파일이 있습니다.
standalone/deployments WAR, EAR, JAR 파일을 배포하는 디렉터리입니다.
standalone/log 서버 로그가 저장되는 디렉터리입니다.
modules JDBC 드라이버 등 모듈 기반 라이브러리 구성이 들어갑니다.

WildFly 실행하기

WildFly를 기본 standalone 모드로 실행하려면 bin 디렉터리의 standalone.sh를 사용합니다.

cd /opt/wildfly/bin
./standalone.sh

정상 실행되면 기본 애플리케이션 포트인 8080으로 접속할 수 있습니다.

http://서버IP:8080

서버 내부에서 포트가 열렸는지 확인하려면 다음 명령어를 사용할 수 있습니다.

ss -lntp | grep 8080
기본 실행은 로컬 또는 테스트 목적에 적합합니다.
외부에서 접속해야 하는 운영 서버라면 바인딩 주소를 명시해야 합니다.
방화벽, 보안그룹, 서버 접근 정책도 함께 확인해야 합니다.

외부 접속 가능하도록 실행하기

기본 실행 상태에서는 환경에 따라 로컬 바인딩만 되어 외부 접속이 제한될 수 있습니다. 외부에서 애플리케이션에 접속해야 한다면 -b 옵션을 사용합니다.

./standalone.sh -b 0.0.0.0

관리 콘솔까지 외부 접속이 필요하다면 관리 바인딩 주소도 별도로 지정해야 합니다. 다만 관리 콘솔 외부 개방은 보안 위험이 있으므로 운영 환경에서는 접근 대역을 제한하는 것이 좋습니다.

./standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0
관리 콘솔 포트 9990을 전체 대역에 개방하는 것은 위험할 수 있습니다.
운영 환경에서는 VPN, 방화벽, 보안그룹, 접근 제어 정책을 적용해야 합니다.
관리자 계정 비밀번호도 단순 문자열을 사용하지 않는 것이 좋습니다.

관리자 계정 생성

WildFly 관리 콘솔에 접속하려면 관리자 계정을 생성해야 합니다. Linux에서는 add-user.sh, Windows에서는 add-user.bat를 사용합니다.

cd /opt/wildfly/bin
./add-user.sh

실행 후 계정 유형을 선택하는 화면이 나오면 일반적으로 Management User를 선택합니다. 이후 사용자명과 비밀번호를 입력하면 관리 콘솔 접속 계정이 생성됩니다.

입력 항목 설명
Management User 관리 콘솔과 CLI 접속용 계정입니다.
Application User 애플리케이션 인증에 사용할 수 있는 계정입니다.
Username 관리자 로그인에 사용할 계정명입니다.
Password 보안 정책에 맞는 복잡한 비밀번호를 사용해야 합니다.

관리자 콘솔은 다음 주소로 접근합니다.

http://서버IP:9990

WAR 파일 배포 방법

가장 단순한 배포 방식은 standalone/deployments 디렉터리에 WAR 파일을 복사하는 것입니다. WildFly의 deployment scanner가 파일을 감지해 자동 배포합니다.

cp sample.war /opt/wildfly/standalone/deployments/

배포가 완료되면 같은 디렉터리에 .deployed 파일이 생성됩니다. 배포 실패 시에는 .failed 파일이 생성될 수 있으므로 로그와 함께 확인해야 합니다.

ls -al /opt/wildfly/standalone/deployments/
상태 파일 의미
sample.war.deployed 배포가 정상 완료된 상태입니다.
sample.war.failed 배포 실패 상태입니다. 서버 로그 확인이 필요합니다.
sample.war.isdeploying 배포가 진행 중인 상태입니다.
sample.war.undeployed 배포가 해제된 상태입니다.

로그 확인 방법

WildFly 실행 중 오류가 발생하면 가장 먼저 server.log를 확인합니다. 애플리케이션 배포 실패, 포트 충돌, JDBC 연결 실패, 메모리 문제 등이 이 로그에 기록됩니다.

tail -f /opt/wildfly/standalone/log/server.log

최근 오류만 빠르게 확인하려면 다음처럼 검색할 수 있습니다.

grep -i "error\|exception\|failed" /opt/wildfly/standalone/log/server.log
운영 환경에서는 로그 확인 기준을 미리 정해두는 것이 좋습니다.
서버 기동 로그, 배포 로그, 애플리케이션 예외, 데이터소스 연결 오류를 구분해서 보면 장애 원인 파악이 빨라집니다.

Windows에서 WildFly 설치하기

Windows 환경에서도 설치 방식은 비슷합니다. ZIP 파일을 내려받아 원하는 경로에 압축을 해제한 뒤 standalone.bat를 실행합니다.

설치 경로 예시

C:\wildfly

명령 프롬프트에서 실행

cd C:\wildfly\bin
standalone.bat

관리자 계정 생성

cd C:\wildfly\bin
add-user.bat

Windows 서버에서 운영할 경우에는 수동 실행보다 서비스 등록 방식을 검토하는 것이 좋습니다. 서버 재부팅 후 자동 기동, 표준 로그 관리, 계정 권한 분리를 위해 서비스화가 필요할 수 있습니다.

Linux 서비스 등록 기본 예시

운영 서버에서는 터미널에서 직접 실행하기보다 systemd 서비스로 등록해 관리하는 방식이 일반적입니다. 먼저 WildFly 전용 계정을 생성합니다.

sudo useradd -r -s /sbin/nologin wildfly
sudo chown -R wildfly:wildfly /opt/wildfly

systemd 서비스 파일을 생성합니다.

sudo vi /etc/systemd/system/wildfly.service

기본 예시는 다음과 같습니다. 실제 운영 환경에서는 Java 옵션, 바인딩 주소, 로그 정책을 서버 기준에 맞게 조정해야 합니다.

[Unit]
Description=WildFly Application Server
After=network.target

[Service]
Type=simple
User=wildfly
Group=wildfly
Environment="JAVA_HOME=/usr/lib/jvm/java-21-openjdk"
Environment="JBOSS_HOME=/opt/wildfly"
ExecStart=/opt/wildfly/bin/standalone.sh -b 0.0.0.0
ExecStop=/bin/kill -TERM $MAINPID
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

서비스 파일을 적용하고 WildFly를 시작합니다.

sudo systemctl daemon-reload
sudo systemctl enable wildfly
sudo systemctl start wildfly
sudo systemctl status wildfly

포트와 방화벽 확인

WildFly가 정상 실행되어도 방화벽이나 보안그룹에서 포트가 차단되어 있으면 외부 접속이 되지 않습니다. 기본 포트는 다음과 같습니다.

포트 용도 운영 시 주의사항
8080 HTTP 애플리케이션 접속 리버스 프록시나 L4/L7 로드밸런서 뒤에 둘 수 있습니다.
8443 HTTPS 접속 인증서 적용 방식과 프록시 구성을 함께 검토해야 합니다.
9990 관리 콘솔 전체 공개를 피하고 관리자 대역만 허용하는 것이 좋습니다.

Linux에서 포트 리스닝 상태는 다음 명령어로 확인할 수 있습니다.

ss -lntp | grep java

설치 후 기본 점검 순서

설치가 끝났다면 단순히 화면 접속만 확인하지 말고 실행 계정, 포트, 로그, 배포 상태까지 함께 확인해야 합니다.

  1. java -version으로 Java 버전을 확인합니다.
  2. systemctl status wildfly 또는 실행 터미널에서 기동 상태를 확인합니다.
  3. 8080 포트 접속으로 기본 화면을 확인합니다.
  4. 9990 관리 콘솔 접속과 관리자 로그인을 확인합니다.
  5. server.log에 오류가 없는지 확인합니다.
  6. 테스트 WAR 파일을 배포해 실제 애플리케이션 실행 여부를 확인합니다.

운영 시 주의사항

WildFly 설치 후 운영 단계에서는 보안, 메모리, 로그, 배포 절차를 반드시 관리해야 합니다. 특히 개발 환경에서 사용하던 기본 설정을 그대로 운영에 적용하면 장애나 보안 문제가 발생할 수 있습니다.

관리 콘솔 포트는 반드시 접근 제한을 적용해야 합니다.
운영 서버에서는 root 계정으로 WildFly를 실행하지 않는 것이 좋습니다.
배포 파일을 직접 덮어쓰기 전에 기존 파일 백업과 롤백 절차를 준비해야 합니다.
JVM 메모리 옵션은 서버 사양과 애플리케이션 특성에 맞게 조정해야 합니다.
점검 항목 권장 기준
실행 계정 WildFly 전용 계정 사용
관리 포트 관리자 IP 또는 내부망만 허용
JVM 옵션 메모리, GC, 인코딩 옵션을 운영 기준에 맞게 설정
로그 관리 로그 회전, 보관 기간, 디스크 사용량 모니터링 적용
배포 관리 수동 복사보다 표준 배포 절차와 롤백 기준 수립

자주 발생하는 문제

WildFly 설치 후 자주 발생하는 문제는 대부분 Java 경로, 포트 충돌, 권한 문제, 방화벽 설정에서 발생합니다.

증상 가능한 원인 확인 방법
WildFly가 실행되지 않음 Java 미설치, JAVA_HOME 오류, 실행 권한 부족 java -version, echo $JAVA_HOME, 로그 확인
8080 접속 불가 바인딩 주소 문제, 방화벽 차단, 서비스 미기동 ss -lntp, 방화벽 정책 확인
9990 관리 콘솔 접속 불가 관리 바인딩 미설정, 방화벽 차단, 계정 미생성 -bmanagement 옵션과 관리자 계정 확인
WAR 배포 실패 애플리케이션 오류, 라이브러리 충돌, 설정 누락 server.log, .failed 파일 확인
기동 후 바로 종료 포트 충돌, 메모리 부족, 설정 파일 오류 포트 사용 현황과 기동 로그 확인

마무리

WAS WildFly 설치는 압축 파일을 내려받아 해제하고 standalone.sh 또는 standalone.bat를 실행하는 방식으로 시작할 수 있습니다. 하지만 운영 환경에서는 Java 버전, 실행 계정, 포트 개방, 관리자 계정, 서비스 등록, 로그 관리까지 함께 구성해야 안정적으로 사용할 수 있습니다.

처음 설치할 때는 기본 standalone 모드로 기동 여부를 확인하고, 이후 애플리케이션 배포, 관리자 콘솔 접근 제한, systemd 서비스 등록, JVM 옵션 조정 순서로 진행하는 것이 좋습니다. 운영자 입장에서는 설치 성공 여부보다 “재기동 가능성, 로그 추적 가능성, 보안 통제 가능성”을 기준으로 WildFly 구성을 점검해야 합니다.

반응형