---
title: 리셀러 (화이트라벨)
description: 파트너가 자체 브랜드와 도메인으로 클라우드를 판매할 수 있도록 지원합니다. 리셀러 생성, 도메인 및 DNS 설정, 도매가, 기본값, 라이선스 슬롯을 관리하세요.
url: https://nexcmp.com/ko/docs/customers/resellers/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# 리셀러 (화이트라벨) {#resellers-white-label}

> **관리자 내 위치:** Customers › Resellers › List(`/resellers`), Domains & SSL(`/resellers/domains`), Permissions & wholesale(`/resellers/entitlements`), Defaults(`/resellers/settings`). 리셀러 슬롯: System › Admin › License & updates(`/license`).

## 작동 내용 {#what-it-does}

**리셀러**는 **자체 도메인**에서 자체 고객, 지갑, 가격 및 (선택적으로) 결제 채널을 갖춘 고객 포털의 브랜딩 사본을 제공받습니다. 리셀러는 귀하로부터 도매가로 구매하여 자체 가격으로 판매합니다. 리셀러의 고객은 귀하의 브랜드를 전혀 볼 수 없으며, 리셀러 도메인에서는 귀하의 관리자 콘솔을 열 수 없습니다. 리셀러는 `https://partner.<your-domain>`의 **파트너 콘솔**에서 비즈니스를 운영합니다.

## 요구 사항 {#requirements}

| 항목 | 요구 사항 |
|---|---|
| 라이선스 | 커스텀 리셀러 도메인마다 라이선스에 **리셀러 도메인 슬롯** 1개가 필요합니다. 라이선스 페이지에 `used/max` 슬롯과 추가 구매 링크가 표시됩니다. 여유 슬롯이 없으면 도메인 추가 시 "Out of license reseller domain slots" 오류와 함께 실패합니다. |
| DNS | 각 리셀러 도메인은 귀하의 서버를 가리키도록 설정해야 합니다(아래 참조). |
| 웹 서버 및 TLS | 해당 호스트 이름의 유효한 인증서가 있는 리버스 프록시를 통해 호스트 이름이 NexCMP 패널에 연결될 수 있어야 합니다. |
| 이메일 | 초대 및 알림 이메일을 위한 SMTP가 구성되어 있어야 합니다. |
| 마스터 스위치 | **Reseller settings › General › `rs_enabled`** 항목은 기본적으로 켜져 있습니다. |

## 인프라 준비 {#prepare-the-infrastructure}

1. 서버의 퍼블릭 주소를 결정합니다. IPv4 주소 및 CNAME을 선호하는 경우 이를 가리키는 호스트 이름(예: `sites.cloud.example.com`)입니다.
2. **Customers › Resellers › Defaults** (`/resellers/settings`)의 **Domains & SSL** 그룹을 열고 다음을 설정합니다:

   | 키 | 의미 |
   |---|---|
   | `rs_server_ipv4` | 리셀러의 A 레코드가 가리켜야 하는 공인 IPv4. |
   | `rs_cname_target` | 리셀러의 CNAME 레코드가 가리켜야 하는 호스트 이름. |
   | `rs_master_hosts` | 자체 메인 사이트에 속하는 호스트 이름 (리셀러에게 부여할 수 없음). |
   | `rs_platform_domain` | **플랫폼 서브도메인**용 상위 도메인(선택 사항, 예: `partners.cloud.example.com`를 통해 리셀러에게 `acme.partners.cloud.example.com` 제공). 비워두면 옵션이 비활성화됩니다. |
   | `rs_sites_stale_minutes` | 인증서 서비스가 만료된 것으로 간주하기 전의 시간(분, 기본값 15). |
   | `rs_ssl_fail_hours` | 오류가 발생하기 전의 실패 시도 시간(시간, 기본값 48). |

   ::: warning 지침을 전송하기 전에 이 값들을 확인하세요
   `rs_server_ipv4`, `rs_cname_target`, `rs_master_hosts`에는 예시 값이 기본으로 포함되어 있습니다. 리셀러에게 DNS 지침을 제공하기 **전에** 사용자의 서버 및 도메인으로 교체하세요. 그렇지 않으면 화면의 지침이 잘못된 곳을 가리키게 됩니다.
   :::

3. **Save**를 클릭합니다 (사유 입력이 필요합니다).
4. 리버스 프록시가 리셀러 호스트 이름을 NexCMP 패널로 전달하고 각각에 대한 인증서를 제공하는지 확인하세요. 설치 프로그램은 메인 도메인(및 해결되는 `admin.` 및 `partner.` 이름)에 대해서만 nginx와 Let's Encrypt를 구성합니다. Cloudflare를 사용하는 경우 호스트 이름을 프록시하고 Full SSL 모드를 사용하세요.

## NexCMP에서 연결 {#connect-in-nexcmp}

### 리셀러 생성 {#create-the-reseller}

1. **Customers › Resellers › List**를 열고 **New reseller**를 클릭합니다. 마법사는 8단계로 구성되어 있으며 마지막에 모든 항목을 프로비저닝합니다. 각 단계는 안전하게 다시 시도할 수 있습니다.

   | 단계 | 입력 내용 |
   |---|---|
   | **Reseller** | 법인명 또는 상호, **슬러그**(4~31자의 a~z, 0~9 또는 `-`, 문자로 시작하며 인프라 접두사로도 사용됨), 담당자 이름, 이메일 및 전화번호, 기본 언어, 리셀러의 결제 세부 정보 (크레딧 충전 구매자 기준). |
   | **Console account** | 사용자 이름, 계정 이메일, 전체 이름; **이메일로 일회용 초대 링크 전송**(72시간 유효, 권장) 또는 임시 비밀번호 1회 표시. |
   | **Brand** | 브랜드 이름, 단축 이름, 태그라인, 기본 색상, 지원 이메일 및 전화번호, 고객 인쇄용 인보이스에 표시되는 판매자 이름, 로고(밝은 배경 및 어두운 배경), 정사각형 마크 및 파비콘: PNG, JPEG, WEBP 또는 ICO(최대 256 KB, **SVG 불가**). |
   | **Domains** | **또한 www**가 포함된 고객 도메인, 기본 도메인, **테스트 도메인**(sslip.io) 및 **dry-run** 옵션 또는 플랫폼 서브도메인. 마법사는 **DNS OK / DNS not ready** 및 생성해야 할 레코드를 표시합니다. |
   | **Pricing & wallet** | 도매 할인율(%), 리테일 하한선(리스트 가격의 %), 기본 마크업(%), 크레딧 한도, 초기 잔액, 잔액 부족 알림, 고객·VM·도메인 한도, 사이트 기능(고객 가입, DDoS 보호, 지원 티켓, 커스텀 플랜, 리사이즈, Auto Scaling)입니다. |
   | **Payment channels** | 고객 결제 수금 주체(아래 참고) 및 선택 사항인 자체 PayPal 및 자체 베트남 은행 송금입니다. |
   | **Email** | 발신자 이름 및 회신 주소(Reply-To). From 주소는 리셀러 도메인용 DKIM이 설정될 때까지 플랫폼 주소로 유지됩니다. |
   | **Review** | 모든 내용을 확인한 후 **Provision everything**을 클릭하거나 **Save draft (provision later)**를 선택하세요. |

2. 프로비저닝은 백그라운드에서 계속 진행됩니다(30초마다). 리셀러를 열어 진행 상황을 확인하고, 단계가 실패한 경우 **Continue provisioning** 또는 **Retry**를 사용하세요.

![예시 값이 입력된 첫 번째 단계의 새 리셀러 마법사](https://nexcmp.com/ko/docs/images/customers/resellers-01-wizard.webp)

### DNS 지정(리셀러가 수행) {#point-dns-the-reseller-does-this}

리셀러(또는 귀하)는 **Domains & SSL** 탭에 표시된 레코드를 생성합니다.

| Record | Name | 값 |
|---|---|---|
| TXT (소유권 확인, 최초 1회만) | `_site-verify.<domain>` | `sv=<token>` 화면에 표시됨 |
| A (`shop.example.net` 등 루트 도메인) | the domain | your `rs_server_ipv4` |
| CNAME (`cloud.example.net` 등 하위 도메인) | the domain | your `rs_cname_target` (또는 `rs_server_ipv4`에 대한 A 레코드) |
| CNAME (선택 사항) | `www.<domain>` | your `rs_cname_target` |

추가 사항:

- 서버가 해당 IPv6 주소로 응답하지 않는 한 모든 **AAAA** (IPv6) 레코드를 제거하세요.
- 도메인이 인증되는 동안 CDN 프록시를 **꺼짐**(회색 구름)으로 설정하세요.
- 도메인에 **CAA** 레코드가 있는 경우 `letsencrypt.org`을(를) 허용하세요.

TXT 레코드의 토큰은 도메인마다 다르므로 화면에서 복사해야 합니다. 시스템은 처음 48시간 동안은 5분마다, 이후에는 매시간 DNS를 재확인하며, 72시간이 지나도 TXT 레코드가 누락된 도메인은 해제합니다.

### 도메인 상태 {#domain-states}

**Customers › Resellers › Domains & SSL** (모든 리셀러) 및 리셀러의 **Domains & SSL** 탭에서 확인할 수 있습니다:

| 상태 | 의미 |
|---|---|
| `pending_verify` | TXT 레코드를 대기 중입니다. |
| `pending_dns` / `verifying` | A 또는 CNAME 레코드가 귀하를 가리키기를 대기 중입니다. |
| `issuing` | 인증서가 발급되는 중입니다. |
| `active` | 리셀러 사이트를 서빙 중입니다. |
| `cert_expiring` | 인증서 만료가 임박했으며 갱신이 예상됩니다. |
| `dns_lost` | DNS가 더 이상 귀하를 가리키지 않습니다. 30일 후 도메인이 제거됩니다. |
| `error` | 오류 코드를 확인하고 문제를 수정한 후 **Retry**를 누르세요. |
| `removing` / `removed` | 제거되는 중이며 라이선스 슬롯이 반환됩니다. |

행 작업: **Check now**, **Retry**, **Make primary**, **Test mode** (테스트 도메인용), **Remove**.


## 권한 및 도매 {#permissions-wholesale}

**Customers › Resellers › Permissions & wholesale**(`/resellers/entitlements`)은 리셀러당 한 행으로 구성된 매트릭스이며, 도매 **할인율**(discount), **마크업**(markup) 및 서비스별 스위치(예: DDoS Shield 및 VPN)가 포함됩니다. 스위치는 플랫폼 전체 기능이 켜져 있을 때 편집할 수 있으며, 그렇지 않은 경우 셀이 읽기 전용으로 표시되고 설정으로 연결됩니다. **Top-up codes** 하위 탭에서는 각 리셀러가 월에 발행할 수 있는 코드 수를 설정합니다 ([Promotions](https://nexcmp.com/ko/docs/billing/promotions/) 참조).

가격 규칙:

- 도매가 = 정가 x (1 - 할인율)이며, 리셀러의 **Wholesale pricing** 탭에서 플랜별 및 결제 주기별로 재정의할 수 있습니다.
- 리셀러가 소매가를 설정하며 **최저 기준**(정가의 백분율) 아래로 내려갈 수 없습니다.
- 고객이 구매할 때 리셀러의 **지갑(wallet)**에서 도매가가 결제됩니다. 지갑에는 크레딧 한도, 유예 기간 및 초과 한도가 적용됩니다 (Defaults 참조).

## 기본값 {#defaults}

**Customers › Resellers › Defaults**(`/resellers/settings`)는 모든 리셀러에게 적용되는 `rs_*` 키입니다. 변경할 때마다 사유를 묻고 감사(audit) 기록이 남습니다.

| 그룹 | 키 | Default | 의미 |
|---|---|---|---|
| General | `rs_enabled` | 1 | 리셀러 프로그램 사용. |
| | `rs_platform_collect_enabled` | 0 | 플랫폼이 리셀러를 대신하여 고객 결제를 수금할 수 있도록 허용합니다. **법적 검토 후에만 활성화하세요.** |
| | `rs_totp_required` | 1 | 리셀러 콘솔 계정은 2단계 인증을 사용해야 합니다. |
| | `rs_agreement_version` | 1 | 수락해야 하는 리셀러 약관의 버전입니다. |
| 기본 가격 책정 | `rs_default_discount_bp` | 2000 (20 %) | 신규 리셀러 도매 할인 (베이시스 포인트, 0~9000). |
| | `rs_default_markup_bp` | 2500 (25 %) | 기본 마크업 (0~50000). |
| | `rs_default_floor_bp` | 9000 (90 %) | 소매 하한선 (0~20000). |
| | `rs_default_max_domains` | 3 | 리셀러당 허용되는 도메인 수. |
| 지갑 및 지급 | `rs_grace_hours` | 72 | 리셀러 지갑 잔액 부족으로 인해 고객 서비스에 영향이 가기 전의 유예 기간. |
| | `rs_overdraft_cap_cents` | 5000 | 지갑 초과 인출 허용 여부. |
| | `rs_retention_days` | 14 | 폐쇄된 리셀러의 VM이 삭제되기까지의 일수. |
| | `rs_payout_hold_days` | 30 | 수수료를 출금할 수 있게 되기까지 보관되는 일수. |
| | `rs_payout_min_cents` | 5000 | 최소 출금 금액. |
| | `rs_topup_min_cents` | 2000 | 리셀러의 최소 지갑 충전 금액. |
| 결제 및 메일 | `rs_webhook_base` | 비어 있음 | 리셀러 게이트웨이 웹훅을 위한 공개 기본 URL (비어 있음 = 사이트 URL 사용). |
| | `rs_mail_from` | 비어 있음 | 리셀러 이메일의 보낸 사람 주소. |
| | `rs_invoice_show_processor` | 1 | 인보이스에 결제 대행사를 표시합니다. |
| | `rs_gw_stripe_enabled`, `rs_gw_usdt_enabled` | 1 | 리셀러가 자체 Stripe 또는 USDT를 구성할 수 있는지 여부. |

## 고객 결제 수금 주체 {#who-collects-customer-payments}

| 모드 | 의미 |
|---|---|
| **리셀러 수금 (자체 채널)** — 기본값 | 리셀러가 자체 Stripe, PayPal, USDT 또는 은행 계좌를 연결합니다. 웹훅은 `https://<reseller-domain>/v1/billing/<gateway>/webhook/r/<id>`입니다. 저장된 카드 및 [auto top-up](https://nexcmp.com/ko/docs/billing/auto-top-up/)은 이러한 사이트에서 사용할 수 없습니다. |
| **플랫폼 수금** | 귀하의 채널이 리셀러 사이트에 표시됩니다. `rs_platform_collect_enabled = 1`까지 잠겨 있습니다. |
| **혼합** | 채널별로 선택하는 조합. |

## 리셀러에게 표시되는 내용 {#what-the-reseller-sees}

`https://partner.<your-domain>`의 파트너 콘솔에는 개요, 보고서, 고객, VM, 티켓, 주문, 결제, 가격, 브랜드, 랜딩 및 법률, 도메인 및 SSL, 이메일, 지갑, 결제 채널이 있습니다. 콘솔 계정은 *reseller* (전체) 또는 *staff* (읽기 전용) 역할을 가집니다. 직접 확인하려면 리셀러를 열고 **Sign in to partner console**을 클릭하세요. 60분 동안 진입하며, 모든 쓰기 작업은 관리자 로그와 리셀러 로그 모두에 이름과 함께 기록되고, 자금 관련 작업은 두 번째 확인이 필요합니다.

## 확인 {#verify}

1. 프로비저닝 후 리셀러의 목록 행에 *active*와 녹색 **Provisioning** 열이 표시됩니다.
2. 브라우저에서 리셀러의 도메인을 엽니다. 리셀러 고유의 브랜드가 적용된 로그인 페이지가 나타납니다. `https://<reseller-domain>/admin`은(는) 404를 반환합니다.
3. 해당 도메인에서 테스트 고객으로 가입합니다. **Customers › List**에서 **Site** 열에 리셀러가 표시된 고객을 확인할 수 있습니다.
4. 라이선스 페이지에 사용 중인 슬롯이 1개 늘어난 것으로 표시됩니다.

## 한도 및 참고 사항 {#limits-notes}

- 커스텀 또는 테스트 도메인당 1개의 라이선스 슬롯이 사용되며, 플랫폼 서브도메인은 슬롯을 소모하지 않습니다.
- 리셀러를 일시 중단해도 데이터는 유지되며, **Close reseller**는 모든 도메인 슬롯을 반환하고 VM 삭제는 보존 기간이 지난 후에만 허용됩니다.
- 리셀러의 고객은 내 고객 목록에 표시되며 다른 고객과 마찬가지로 가장하여 로그인할 수 있습니다(링크는 리셀러의 도메인에서 열림).
- 리셀러는 나의 결제 채널, 기본 할당량 또는 다른 리셀러를 보거나 변경할 수 없습니다.

## Troubleshooting {#troubleshooting}

| 증상 | 원인 | 해결 방법 |
|---|---|---|
| "라이센스 리셀러 도메인 슬롯 초과" | 모든 슬롯 사용됨 | 슬롯을 확보(도메인 제거)하거나 라이선스 페이지에서 추가로 구매하세요. |
| `pending_verify` 상태인 도메인 | TXT 레코드 누락 | 표시된 대로 정확히 TXT 레코드를 생성하고 **Check now**을(를) 사용하세요. |
| `pending_dns` 상태인 도메인 | A/CNAME이 본인을 가리키지 않거나, AAAA 레코드가 있거나, CDN 프록시가 켜져 있음 | DNS를 수정하고 프록시를 끈 다음 **Check now**을(를) 클릭하세요. |
| `error` 상태 | 행의 코드 확인(예: Let's Encrypt를 차단하는 CAA, 속도 제한) | 문제를 해결하고 **Retry**을(를) 클릭하세요. |
| 브라우저에 알 수 없는 호스트 또는 "421" 오류가 표시됨 | 호스트 이름이 라이선스에 없거나 패널로 라우팅되지 않음 | 리셀러를 통해 도메인을 추가하고(슬롯 소모) 리버스 프록시를 수정하세요. |
| 지침에 잘못된 IP 또는 호스트가 표시됨 | `rs_server_ipv4` / `rs_cname_target`에 여전히 샘플 값이 있음 | Defaults에서 설정하세요. |
| 리셀러가 플랫폼 수금을 활성화할 수 없음 | 잠김 | 법적 검토 후 `rs_platform_collect_enabled`을(를) 설정하세요. |


