[Docker] 손쉽게 프록시 서버 관리하기 NPM(nignx proxy manager)

2025. 10. 20. 19:34·Infra/Docker

# 프록시 서버를 손쉽게 배포 및 관리하는 서비스

 

대개, 웹서비스를 구축하면, 프론트와 백엔드를 나누어 프록시 서버로 관리한다. 

이 때, 도메인이 하나일때, 서브도메인으로 다양한 서버를 분리한다. 이럴 때 npm을 통해 손쉽게 분리 가능하다.

또한, ssl인증서도 자동으로 업데이트 및 원클릭으로 설정을 해줘서 https를 손쉽게 설정 가능하다.

그리고 세부 설정은 npm 내부 파일을 수정하면 가능하니, 좀 더 깊게 알아보면, 커스텀또한 가능하다. (대신 웹에서 설정하면 초기화 될 가능성 있음)

 

# 배포

docker로 배포를 간단하게 진행 할 수 있다.

여기서 80, 443을 nginx에서 받아야하기 때문에 남겨두고, 81은 nginx 통합 관리 페이지 이다.

 

docker network create npm-network

로 먼저 network를 설정한다.

왜냐하면, 내부망에서 npm docker와 다른 docker와 연결을 하기 위해

version: '3.8'
services:
  npm:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    networks:
      - npm-network

networks:
  npm-network:
    external: true

 

위 docker.compose.yml을 설정하고 `docker compose up -d` 으로 실행하면 된다.

 

## 로그인

 

localhost:81로 들어가면 관리페이지 전에 로그인을 하는 페이지가 나온다.

(localhost => 배포한 url)

 

초기 유저 정보는

ID: admin@example.com

PW: changeme

이다.

 

로그인 후 아이디와 비밀번호를 변경할 수 있다.

 

## nginx 관리

 

1. 왼쪽에 Proxy Hosts를 클릭한다.

 

 

2.  들어가서 Add Proxy Host를 클릭한다.

 

 

3. 먼저 도메인 이름을 쓴다.

 

서브도메인 있으면 쓰고,

도메인들을 쓴다. ex) be.naver.com

 

4. 다음에는 schema랑 ip, port를 쓴다.

 

여기서 ipv4를 쓰거나 localhost를 사용해도 되지만, 저는 docker-network를 통해 연결했기에, container 이름을 써서 연동을 자주 한다.

아래의 설정중 socket을 개발했다면 websockets support를 꼭 켜줘야한다.

 

 

5. https 는 상단 메뉴의 SSL에서 쉽게 설정할 수 있다.

 

이 SSL은 발급이 쉽고, 주기적으로 인증서를 발급해주기 때문에 정말 편한 기능이다.

 

이렇게 npm을 간단하게 구현할 수 있다. 또한 terminal을 통해 추가적인 커스텀을 할 수 있다.

 

## 프록시 커스텀

 

프록시 호스트를 지정해준 만큼 아래의 conf파일로 설정이 되어있다.

이 부분은 nginx와 동일하다. 아래 코드에서 설정후 reload를 해주면 적용된다. 

이처럼 세부적인 설정은 코드를 수정함으로써 설정 가능하다.

/data/nginx/proxy_host

 

이를 통해 도메인만 구매를 한다면, 간단하게 서브도메인을 통해 여러개로 서버를 나누고, ssl 인증서를 간편하게 설정할 수 있다는 장점이 있다. 간단한 서비스라면 충분히 실사용가능하다고 보인다. 이런 프로그램을 만들어주신 npm 개발자 감사합니다.

'Infra > Docker' 카테고리의 다른 글

[Docker] 사설 DNS 서버 구축 및 리버스 프록시로 내부 웹 서버 연결하기 (Technitium, Nginx) + window 및 Ovpn dns 설정 방법  (0) 2026.02.27
[Docker] VPN 서버구축하기 WireGuard  (1) 2024.10.15
'Infra/Docker' 카테고리의 다른 글
  • [Docker] 사설 DNS 서버 구축 및 리버스 프록시로 내부 웹 서버 연결하기 (Technitium, Nginx) + window 및 Ovpn dns 설정 방법
  • [Docker] VPN 서버구축하기 WireGuard
ckm7907
ckm7907
  • ckm7907
    백엔드 잘하고 싶어요!
    ckm7907
  • 전체
    오늘
    어제
    • 분류 전체보기 (27)
      • BACKEND (13)
        • Spring (13)
      • FRONTEND (1)
        • React (1)
      • Infra (11)
        • CICD (1)
        • 네트워크 (5)
        • Docker (3)
      • DBMS (2)
        • MySQL (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 글관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    tibero
    비밀번호
    단방향암호화
    github Actions
    tibero studio
    SVC
    spring boot
    EC2
    Technitium #nginx #DNS 서버
    self-hosted
    github
    docker-compose
    sha-256
    DockerHub
    Docker
    servlet
    Salt
    runners
    CICD
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
ckm7907
[Docker] 손쉽게 프록시 서버 관리하기 NPM(nignx proxy manager)
상단으로

티스토리툴바