웹 서버 관리, 특히 NGINX 설정은 때로는 복잡하고 번거롭게 느껴질 수 있습니다. 커맨드 라인에 익숙하지 않거나, 여러 프로젝트의 NGINX 설정을 효율적으로 관리하고 싶으신가요? 여기 그 해답이 있습니다: NGINX WebUI!
NGINX WebUI는 이름 그대로 **NGINX를 위한 웹 기반 사용자 인터페이스(WebUI)**입니다. 이 도구를 사용하면 터미널을 직접 만지지 않고도 NGINX를 전문가처럼 관리할 수 있습니다. 간단하고 강력하며, 프로덕션 환경에서 바로 사용할 수 있도록 설계되었습니다.

NGINX WebUI, 왜 사용해야 할까요?
NGINX WebUI는 NGINX 관리를 획기적으로 단순화하는 다양한 기능을 제공합니다. 여러분의 웹 서비스 운영을 더욱 편리하고 효율적으로 만들어 줄 주요 기능들을 살펴보세요:
- 원클릭 리버스 프록시 설정: 복잡한 설정 없이 단 한 번의 클릭으로 리버스 프록시를 구성할 수 있습니다.
- 자동 Let’s Encrypt 인증서 발급 및 갱신: DNS 챌린지를 포함하여 Let’s Encrypt 인증서를 자동으로 발급하고 갱신하여 웹사이트 보안을 강화합니다.
- 세밀한 요청 재작성 및 리다이렉트 규칙: 요청 재작성(Path Rewriting) 및 리다이렉트 규칙을 세밀하게 제어하여 유연한 경로 관리가 가능합니다.
- 정적 파일 호스팅 및 접근 제어: 폴더를 쉽게 노출하고 접근 제어 기능을 통해 보안을 유지하면서 정적 파일을 호스팅할 수 있습니다.
- CI/CD 친화적인 API: CI/CD 파이프라인에서 업스트림 백엔드를 활성화/비활성화할 수 있는 API를 제공하여 자동화된 배포를 지원합니다.
- UI를 통한 Logrotate 설정: 로그 관리를 UI를 통해 간편하게 설정할 수 있습니다.
- 고급 NGINX 설정을 위한 슈퍼유저/관리자 모드: 보다 심화된 NGINX 구성을 위해 슈퍼유저 또는 관리자 모드를 지원합니다.
- 여러 도메인 및 팀 관리 지원: 다수의 도메인과 여러 팀을 효율적으로 관리할 수 있도록 설계되었습니다.
- 무중단 배포 지원: Jenkins 또는 다른 CI/CD 도구를 사용하여 서비스 중단 없이 배포가 가능합니다.
- 모던한 Node.js 아키텍처: 전체 ES Modules (ESM)로 구축되어 현대적이고 모듈화된 Node.js 아키텍처를 자랑합니다.
- 반응형, 모바일 친화적인 UI: 데스크톱, 태블릿, 휴대폰 등 다양한 장치에 맞춰 반응하는 사용자 친화적인 인터페이스를 제공합니다.
- 가볍고 미니멀한 UI 스택: tailwind, daisyui 등 가볍고 최소한의 UI 스택을 사용하여 빠르고 효율적입니다.
- 즉각적인 설정 리로드 및 유효성 검사: UI에서 NGINX 설정 테스트 및 리로드를 트리거하여 변경 사항을 즉시 적용하고 검증할 수 있습니다.
- Docker 볼륨에 영구 저장되는 인증서 데이터: 프로덕션 환경에 적합하도록 인증서 데이터가 Docker 볼륨에 지속적으로 저장됩니다.
- Docker-Compose를 통한 손쉬운 설정: 프로덕션 등급의 Docker-Compose를 사용하여 쉽게 설정하고 배포할 수 있습니다.
- NGINX 상태 대시보드: 활성 OS 레벨 연결을 포함한 실시간 NGINX 상태 통계를 확인할 수 있는 대시보드를 제공합니다.
- 다크 모드 및 테마 지원: 현대적인 UI와 테마 전환 기능을 통해 사용자 경험을 향상시킵니다.
- 백엔드 헬스 체크: 백엔드 서버의 가용성을 핑(ping)하고 확인할 수 있습니다.

간단한 설치 및 시작 방법
NGINX WebUI는 Docker 및 Docker-Compose를 사용하여 매우 쉽게 설치할 수 있습니다. docker-compose.yml
파일을 생성하고 몇 가지 환경 변수를 설정한 후, docker-compose up -d
명령어를 실행하기만 하면 됩니다. 관리자 비밀번호는 docker-compose logs
명령을 통해 확인할 수 있으며, 웹 인터페이스는 HTTPS를 통해 81번 포트로 접속할 수 있습니다.
개발 및 커뮤니티 참여
NGINX WebUI는 MIT 라이선스를 따르는 오픈 소스 프로젝트입니다. 서버 측은 npm, nodejs, express로, 클라이언트 측은 daisyui, tailwind, esbuild, jquery, dayjs, chart.js로 구축되었습니다. 기여에 관심 있는 개발자라면 GitHub에서 프로젝트를 포크(Fork)하고 Pull Request를 통해 참여할 수 있습니다. 현재 **Sung-ho Kim(lancard)**님을 포함한 4명의 기여자(Contributors)가 프로젝트에 참여하고 있습니다.
이제 NGINX WebUI를 통해 복잡한 터미널 명령 없이도 NGINX를 직관적이고 효율적으로 관리해보세요!