Nexus 서버 구축 단계별 설명

Nexus 서버는 다양한 소프트웨어 패키지, 라이브러리, Docker 이미지를 저장, 배포할 때 많이 사용되는 저장소 관리 도구입니다. 직접 설치부터 기본 설정까지 핵심 단계별로 안내해드릴게요.

 

완전 처음

Nexus 서버 구축이 처음이라면, 가장 추천하는 방법은 Docker를 사용하는 것과 리눅스/윈도우에 직접 설치하는 방법입니다. 각 방식별로 실제 사용 환경(리눅스, 윈도우, Docker)에 따라 상세히 단계별 설치법을 안내합니다.


Nexus 서버 구축 (리눅스 직접 설치 기준)

  1. 자바(JDK) 설치

    • Nexus는 Java 1.8 이상이 필요합니다.

    • 설치:

      text
      sudo yum install java-1.8.0-openjdk

      또는 Ubuntu계열은

      text
      sudo apt-get install openjdk-8-jre-headless
    • 설치 완료 후 java -version으로 정상 설치 확인.

  2. 전용 사용자 및 그룹 생성(보안 권장)

    • 전용 nexus 계정 및 그룹을 생성

      text
      sudo groupadd dev
      sudo useradd -g dev nexus
      sudo passwd nexus
  3. Nexus 다운로드 및 압축 해제

    • 공식 사이트에서 Nexus Repository OSS(Unityx) 최신 버전을 다운로드

      text
      wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
    • 압축 해제 후 지정 경로로 이동

      text
      tar zxvf nexus-3.x.x-unix.tar.gz
      mv nexus-3.x.x /opt/nexus
  4. 소유권 변경

    text
    sudo chown -R nexus:dev /opt/nexus
  5. Nexus 실행

    text
    cd /opt/nexus/bin
    ./nexus start
    • root로 실행하면 경고가 뜨니, 반드시 생성한 nexus 계정으로 실행 권장.

  6. 8081 포트로 웹 접속

    • 브라우저에서 http://서버IP주소:8081로 접속

  7. 최초 admin 비밀번호 확인 및 로그인

    • 아래 위치에서 admin 초기 비밀번호 파일 확인(예시)

      text
      cat /opt/sonatype-work/nexus3/admin.password
    • 위 파일에 있는 비밀번호로 웹에서 admin 계정 로그인.


Nexus 서버 구축 (Docker 기반, 리눅스/윈도우 공통)

  1. 데이터 폴더 생성 (예시)

    text
    mkdir -p ~/nexus-data
    mkdir “%USERPROFILE%\nexus-data”
  2. Docker 명령어 한 줄로 실행

    text
    docker run -d -p 8081:8081 --name nexus -v ~/nexus-data:/nexus-data sonatype/nexus3
    • 혹은 docker-compose 사용:

      text
      version: '3.7'
      services:
      nexus:
      image: sonatype/nexus3
      ports:
      - 8081:8081
      volumes:
      - ./nexus-data:/nexus-data
      restart: unless-stopped

      실행:

      text
      docker-compose up -d
  3. 초기 admin 비밀번호 확인

    • Docker 볼륨에 생성된 파일에서 확인

      text
      docker exec -it nexus cat /nexus-data/admin.password
  4. 웹에서 로그인 및 초기 설정

    • 브라우저에서 http://localhost:8081 접속 후 초기 비밀번호로 admin 로그인

    • 비밀번호 변경 및 익명 접근 설정 등 마법사의 안내에 따라 진행


Nexus 서버 구축 (윈도우 설치형, 별도)

  1. 다운로드 및 압축 해제

    • 공식 사이트에서 윈도우판 다운로드 후 압축 해제

  2. 커맨드 프롬프트 관리자 권한 실행, bin 폴더에서 명령어 수행

    • 설치:

      text
      nexus.exe /install
      nexus.exe /run
  3. 웹에서 8081 포트로 접속, admin 패스워드 파일로 비밀번호 확인하여 로그인

    • 경로 예시:

      text
      D:\nexus3\sonatype-work\nexus3\admin.password
    • 초기 admin 패스워드로 로그인.


추가 안내

  • 설치 후 리포지토리 생성, 권한/계정 관리, 외부 접근 방화벽/포트설정 등은 반드시 체크 필요.

  • 서버 재시작, 운영계 사용자 분리, 데이터 폴더 백업도 잊지 마세요.

각 단계에서 문제 발생 시 구체적인 에러 메시지나 상황을 알려주시면 더 상세히 안내해드릴 수 있습니다.

기초 설치 경험 있음

기초 설치 경험이 있다면, 이제 Nexus 서버의 초기 설정(포트/호스트·리포지토리 생성·사용자 및 권한 관리)을 단계별로 정리해 설명합니다.


1. 포트 및 접근 호스트 변경

  • Nexus 기본 포트는 8081, 모든 IP(0.0.0.0)에서 접근 가능합니다.

  • 변경하려면 {설치 디렉토리}/etc/nexus-default.properties 파일에서 application-portapplication-host 값을 수정합니다.

    text
    application-port=8081
    application-host=0.0.0.0

2. 최초 admin 로그인 및 비밀번호 변경

  • 초기 비밀번호는 {설치 디렉토리}/sonatype-work/nexus3/admin.password에서 확인할 수 있습니다.

  • admin 계정으로 첫 로그인 후, 비밀번호를 반드시 변경하세요.

  • 변경 후 admin.password 파일은 삭제되므로 새 비밀번호를 별도 기록하는 것이 좋습니다.


3. 리포지토리 생성 방법

Maven Repository 예시

  • 좌측 메뉴에서 Repositories 이동 → Create repository 클릭.

  • 타입 선택: hosted, proxy, group 중 목적에 맞게 선택

    • hosted: 자체 개발 라이브러리 운영용

    • proxy: 외부 Maven 중앙 저장소 캐싱용

    • group: 여러 저장소를 그룹화

  • 설정 예시:

    • Name: project-release

    • Version Policy: Release

    • Deployment Policy: Disable redeploy(릴리즈는 재배포 금지)

    • 같은 방식으로 snapshot(개발용), proxy(외부연동), group(통합 접근) 저장소 생성.


4. 사용자와 Role(권한) 생성

  • 좌측 메뉴에서 Security → Roles로 이동, Create role 클릭

    • Role Type 선택, 필수 정보(ID/Name) 입력

    • Applied Privileges에서 해당 리포지토리의 명칭 검색 후, 원하는 권한 지정(읽기/쓰기 등).

  • Users 메뉴에서 Create local user 클릭

    • 필요한 정보 입력 후, 방금 만든 Role을 할당

    • 저장 후 신규 계정으로 로그인 가능.


5. 기타 자주 쓰는 설정

  • Blob Store: 저장소별로 물리적인 파일 저장 위치(공간) 관리 가능.

  • 외부 연동을 위해 Proxy Repository에서 외부 Maven Repository URL 지정 후 그룹에 포함시키면 개발 환경에서 자동 의존성 다운로드 활용 가능.


각 단계의 상세화면이나 추가적인 리포지토리·계정 권한 예제가 필요하다면 언제든 말씀해 주세요. 이 설정 이후에는 실제 업로드, 외부 시스템(Maven, Gradle, CI/CD 등) 연동 설정도 진행할 수 있습니다.

 

실무에서 운영 중

Nexus 서버 구축 단계별 설명 Nexus 서버 구축 단계별 설명

실무에서 Nexus 서버를 운영할 때는 설치나 단순 설정을 넘어, 가용성·보안·백업·효율적인 아티팩트 관리·문제 상황 대응에 대한 기준과 체계를 반드시 갖춰야 합니다. 실무 현장에서 가장 중요한 운영 관리 포인트를 정리해 안내합니다.


1. 실무적 Nexus 운영 관리 체크리스트

  • 운영계 계정과 권한 분리

    • 관리자 계정(admin)은 최소 사용, 팀/권한별 사용자 계정 생성해서 각 리포지토리 별 최소 권한만 부여.

  • 필수 보안 설정

    • 비밀번호 정책 강화, 익명 접근 제한

    • HTTPS(SSL) 적용: 자체 인증서 혹은 공인 인증서 적용 후 HTTP→HTTPS 강제 리디렉션 처리.

    • 주기적 admin 비밀번호 변경

  • 네트워크 접근 제한

    • 사내망/외부망, 특정 IP·포트만 접근 가능하도록 방화벽 정책 구성

  • 오류 및 인증서 문제 즉시 대응

    • SSL/TLS 에러, 인증서 만료, 클라이언트-서버 TLS 하위버전 제한 등은 CI/CD 실패로 직결 → 인증서 주기적 갱신 정책 반영.

  • 디스크 용량 모니터링

    • Blob Store(물리 파일 저장 공간), DB(메타 데이터) 용량 부족 경고/알람 시스템 구축

    • 오래된 Snapshot, 사용하지 않는 아티팩트 정기적으로 삭제.


2. 백업 및 복원

  • 백업

    • Blob Store(바이너리 파일)와 DB(메타/구성) 모두 백업 필요

    • 예약 백업/스냅샷 작업 분리 및 주기적 수행

    • 다운타임 최소화를 위해 hot-backup 시, OrientDB에 잠금이 걸릴 수도 있으므로 주의.

    • 중요한 경로: /nexus-data/db/nexus-data/blobs, 설정파일(/nexus-data/etc)

  • 복원

    • /nexus-data/db 및 /nexus-data/blobs 경로를 신규에 그대로 복사 후 Nexus를 재기동

    • Nexus v3.10.0 이하에서는 /nexus-data/backup, 그 이후엔 /nexus-data/restore-from-backup 디렉토리 활용

    • 복구 후 권한 문제나 DB/Blob 오염이 없는지 검증 필요.


3. 실무 장애 대응과 효율 운영

  • 실시간 로그·에러 모니터링

    • Nexus 로그(/nexus-data/log) 및 시스템 리소스(CPU, 메모리, 디스크, 포트 등) 모니터링 연계

  • 운영 자동화

    • 리포지토리 생성/권한 관리 등 반복 작업 자동화 → REST API, 스크립트로 프로세스 정형화

  • 확장성 고려

    • 사용자·아티팩트 증가 시 서버 스펙 조정, Blob Store를 분산 경로나 Block Storage로 이동 가능.

  • 문서화 및 인수인계

    • 운영 정책, 백업/복원/문제 발생시 처리 프로세스, 주요 계정/포트/설정 위치 등 체계적으로 정리


현장에서는 디스크 이슈, 인증서 만료, 익명 접근 시도, 일시적 CI/CD 오류, 오래된 스냅샷 정리 미비 등 흔히 반복되는 장애 사례가 있으니, 각 관리 포인트에 대한 자동화·경보체계 구축이 핵심입니다.

필요하면 운영 정책 샘플이나 단일 항목별 상세 workaround도 안내 가능합니다.

 

커스터마이징/확장 경험 있음

실무에서 Nexus 서버를 커스터마이징하고 확장한 경험이 있으시다면, 다음과 같은 주요 영역과 방법을 활용하는 경우가 많습니다.


1. Nexus 커스터마이징 주요 영역

  • UI 및 테마 변경

    • Nexus 기본 테마 변경 및 브랜드 맞춤형 로고, 컬러, 배경 이미지 적용 가능

    • 애니메이션, 아이콘 크기, 독립적인 사용자 작업 흐름에 맞춘 UI 조정 가능.

  • 리포지토리 정책 및 자동화

    • 저장소별로 고유한 릴리즈 정책, 스냅샷 정책, 아티팩트 클리닝 정책 설정

    • 권한, 접근 제어 정책 세분화 및 권한 그룹 커스텀 구성


2. 플러그인 및 확장 개발

  • Nexus API 활용

    • REST API와 스크립팅으로 리포지토리 자동 생성, 아티팩트 업로드/다운로드, 권한 관리 자동화

    • Maven, Gradle 연동 설정 자동화 및 맞춤 배포 플로우 구성.

  • GraphQL API 사용 사례

    • Nexus 3에서는 GraphQL API도 제공되어 클라이언트 맞춤형 쿼리 작성, 데이터 노출 범위 조절 가능.

  • 커스텀 플러그인 개발

    • Java SDK 기반으로 플러그인 작성 가능

    • 예: 새로운 리포지토리 포맷 지원, 특정 배포 정책 구현, 특정 버전 검증 로직 추가

    • Open Source 플러그인 참고하여 유사 기능 추가 가능


3. 실무 사례: 라이브러리 자동 배포

  • CI/CD 파이프라인 내에서 Nexus API 호출해 빌드된 아티팩트를 자동으로 특정 리포지토리에 배포

  • 사용자 인증, 권한 토큰 관리 및 배포 주소, 경로를 환경별로 동적으로 분기 처리

  • Maven settings.xml 내 인증정보 및 레포지토리 정의를 자동 생성하는 스크립트 운용.


4. 커스터마이징 시 주의사항 및 베스트 프랙티스

  • Nexus 버전 업그레이드시 API/플러그인 호환성 테스트 필수

  • 커스텀 플러그인은 공식 지원하지 않는 부분이 있을 수 있으며, 최신 보안 패치 적용에 주의

  • UI 커스터마이징은 최소화하고, 스크립트 및 API 기반 자동화에 집중할 것

  • 배포/권한 자동화는 운영 안정성 확보에 아주 중요하며, 사내 보안 정책과 연계해 관리 강화.


필요시 구체적인 API 호출 샘플, Maven/Gradle 연동 예, 플러그인 개발 시작 가이드도 제공 가능합니다. 실무에서 어떤 확장 영역에 관심이 있는지 알려주시면 더 구체적으로 안내해드릴 수 있습니다.