---
title: สถาปัตยกรรมระบบ
description: โครงสร้างของ NexCMP: โดเมน, nginx, แผงควบคุมและบริการเวิร์กเกอร์ รวมถึงระบบทั้งหมดที่เชื่อมต่อ พร้อมพอร์ตและข้อมูลที่แต่ละเส้นทางใช้งาน
url: https://nexcmp.com/th/docs/infrastructure/architecture/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# สถาปัตยกรรมระบบ {#architecture}

> **ตำแหน่งในแผงผู้ดูแลระบบ:** หน้านี้เป็นหน้าเอกสารอ้างอิง บริการที่อธิบายไว้ที่นี่สามารถดูได้ด้วย `sudo nexcmp status`; การเชื่อมต่อต่างๆ จะได้รับการกำหนดค่าไว้ใต้ Infrastructure และ System › Settings

## ภาพรวม {#the-picture}

![สถาปัตยกรรมของ NexCMP: ลูกค้าเข้าถึง nginx ผ่าน DNS และ Cloudflare (ถ้ามี), nginx ส่งต่อคำขอไปยังแผงควบคุมที่พอร์ต 3000, แผงควบคุมและเวิร์กเกอร์เรียกใช้งาน CloudStack, Proxmox VE, iDRAC, Ceph, เกตเวย์การชำระเงิน, SMTP และผู้ให้บริการ AI, รวมถึงโหนด VPN และพร็อกซี IPv6 ที่เชื่อมต่อกลับมายังแผงควบคุม](https://nexcmp.com/th/docs/images/infrastructure/architecture.svg)

### แผนภาพเดียวกันในรูปแบบคำอธิบาย {#the-same-diagram-in-words}

1. ลูกค้าหรือผู้ดูแลระบบเปิด `https://cloud.example.com` (พอร์ทัล), `https://cloud.example.com/admin` (คอนโซลผู้ดูแลระบบ) หรือเรียกใช้งาน REST API โดย DNS จะชี้ชื่อโดเมนไปยังเซิร์ฟเวอร์ของคุณหรือไปยัง Cloudflare ซึ่งทำหน้าที่เป็นพร็อกซี
2. **nginx** บนเซิร์ฟเวอร์แผงควบคุมจะ侦听 (ฟัง) ที่พอร์ต 80 (สำหรับการเปลี่ยนเส้นทางและการต่ออายุใบรับรอง) และ 443 (TLS) พร้อมทั้งส่งต่อทุกคำขอไปยัง **panel** ที่ `127.0.0.1:3000` หลังจากผ่านตัวช่วยติดตั้ง แผงควบคุมจะฟังเฉพาะบนอินเทอร์เฟซลูปแบ็กเท่านั้น
3. **panel** (`nexcmp.service`) ทำหน้าที่ให้บริการพอร์ทัลลูกค้า, คอนโซลผู้ดูแลระบบ, REST API, ตัวช่วยติดตั้ง และไฟล์ดาวน์โหลดที่โหนดต้องการ (ไบนารีของเอเจนต์, สคริปต์ติดตั้ง, เครื่องมือบรรทัดคำสั่ง `cmp`) นอกจากนี้ยังตรวจสอบไลเซนส์ของคุณวันละหนึ่งครั้ง
4. **worker** (`nexcmp-vmd.service`) ทำงานบน `127.0.0.1:8112` ซึ่งใช้งานได้เฉพาะภายในเครื่องเท่านั้น โดยจะรันงานทั้งหมดที่ใช้เวลาหรือต้องเกิดขึ้นตามกำหนดเวลา เช่น งานโหนด, การซิงโครไนซ์กับ CloudStack และ Proxmox VE, รอบการเรียกเก็บเงิน, การเก็บข้อมูลแบนด์วิดท์ และการเชื่อมต่อคอนโซลเบราว์เซอร์
5. จากกระบวนการทั้งสองนี้ NexCMP จะทำการเรียกออกไปยังภายนอก ได้แก่ **CloudStack** (Management API), **Proxmox VE** (API ที่พอร์ต 8006, ตรึงใบรับรอง), **Dell iDRAC** (Redfish ผ่าน HTTPS บนเครือข่ายการจัดการ), **Ceph RGW** (S3 และ Admin Ops ผ่าน HTTPS), **เกตเวย์การชำระเงิน** (Stripe, PayPal, USDT และผู้ให้บริการโอนเงินผ่านธนาคาร ซึ่งจะเรียกกลับมายัง URL เว็บฮุกของคุณด้วย), **เซิร์ฟเวอร์ SMTP ของคุณ**, **ผู้ให้บริการ AI** ที่มี API รองรับรูปแบบ OpenAI และ **Telegram** (ตัวเลือกเสริม)
6. **โหนด VPN** รัน `cmp-agent` โดยแต่ละโหนดจะลงทะเบียนครั้งเดียวด้วยโทเค็นแบบใช้ครั้งเดียว จากนั้นจะส่งฮาร์ตบีททุกๆ 5วินาทีผ่าน HTTPS ไปยังแผงควบคุมและรับการตั้งค่ากลับมาในคำตอบ ส่วน **โหนดพร็อกซี IPv6** จะถูกติดตั้งครั้งเดียวโดยแผงควบคุมผ่าน SSH จากนั้นจะดึงการตั้งค่าของตนเองจากแผงควบคุม
7. ข้อมูลสถานะจะถูกจัดเก็บไว้ในฐานข้อมูล SQLite และไฟล์จำนวนหนึ่งใน `/var/lib/nexcmp` สำหรับข้อมูลรับรองของ CloudStack, Proxmox, S3, iDRAC และผู้ให้บริการ AI จะถูกเข้ารหัส (AES-256-GCM) ด้วยไฟล์คีย์หลักที่อยู่ในพื้นที่เดียวกัน

## บริการและกระบวนการ {#services-and-processes}

| กระบวนการ | ทำงานในฐานะ | ฟังที่พอร์ต/อินเทอร์เฟซ | หน้าที่การทำงาน |
|---|---|---|---|
| `nginx` | root (เวิร์กเกอร์ `www-data`) | 80, 443 | TLS, เปลี่ยนเส้นทาง, พร็อกซีไปยังแผงควบคุม |
| `nexcmp` | `nexcmp` | 3000 (ทุกอินเทอร์เฟซระหว่างการติดตั้งครั้งแรก จากนั้นเปลี่ยนเป็น `127.0.0.1`) | พอร์ทัล, คอนโซลผู้ดูแลระบบ, API, ตัวช่วยติดตั้ง, การดาวน์โหลด |
| `nexcmp-vmd` | `nexcmp` | `127.0.0.1:8112` | งาน, การซิงค์, การเรียกเก็บเงิน, แบนด์วิดท์, คอนโซล |
| `nexcmp-update` | root | ไม่มี | ใช้การอัปเดตที่คอนโซลผู้ดูแลระบบร้องขอ (path unit จะรอคำขอ) |
| `cmp-agent` (บนโหนด VPN) | root | พอร์ตตัวรับฟัง VPN | รายงานไปยังพาเนล รันพร็อกซีตัวรับฟังบน IPv4 สาธารณะ |

พาเนลและเวิร์กเกอร์ทำงานเป็นผู้ใช้ทั่วไปโดยไม่มีความสามารถของ Linux ใดๆ มีระบบไฟล์แบบอ่านอย่างเดียว ยกเว้น `/var/lib/nexcmp` และ `/var/log/nexcmp` โดยไม่ต้องใช้ root, Docker, แยกฐานข้อมูล หรือ Redis

## ไฟล์และตำแหน่งที่อยู่ {#files-and-where-they-are}

| พาธ | เนื้อหา |
|---|---|
| `/opt/nexcmp` | โปรแกรม: เวอร์ชันที่ปล่อย, `bin/`, ไฟล์ที่ใช้ร่วมกัน เช่น ตัวสร้างเทมเพลต เป็นเจ้าของโดย root และเป็นแบบอ่านอย่างเดียวสำหรับบริการ |
| `/etc/nexcmp` | การตั้งค่าตัวติดตั้ง (`install.conf`), พอร์ตและการผูก (`nexcmp.env`) |
| `/var/lib/nexcmp` | ฐานข้อมูล SQLite, การอัปโหลดแบรนด์, โฟลเดอร์ดาวน์โหลดเอเจนต์, สถานะไลเซนส์ และไฟล์มาสเตอร์คีย์ กรุณาสำรองข้อมูลส่วนนี้ |
| `/var/log/nexcmp` | ล็อก |

ดูที่ [Backup and restore](https://nexcmp.com/th/docs/getting-started/backup-and-restore/) ไฟล์มาสเตอร์คีย์จะต้องได้รับการสำรองข้อมูลไปพร้อมกับฐานข้อมูล มิฉะนั้นฐานข้อมูลที่กู้คืนมาจะไม่สามารถถอดรหัสข้อมูลประจำตัวที่จัดเก็บไว้ได้

## ใครเชื่อมต่อกับใคร {#who-connects-to-whom}

| Direction | พาธ | Port | หมายเหตุ |
|---|---|---|---|
| ลูกค้าไปยังพาเนล | อินเทอร์เน็ต, DNS, Cloudflare (ไม่บังคับ), nginx | 443 | ดูที่ [DNS and Cloudflare](https://nexcmp.com/th/docs/getting-started/dns-and-cloudflare/) |
| พาเนลไปยังเซิร์ฟเวอร์ไลเซนส์ | `nexcmp.com` | 443 | การเปิดใช้งาน, การตรวจสอบรายวัน และการอัปเดต |
| พาเนลไปยัง CloudStack | API | 443 หรือ 8080 | คอนโซล VM, แบนด์วิดท์ และฟีเจอร์ Kubernetes ใช้เอนด์พอยต์เดียวกัน |
| พาเนลไปยัง Proxmox VE | API และคอนโซล WebSocket | 8006 | ใบรับรองถูกพินด้วย SHA-256 |
| พาเนลไปยัง iDRAC | Redfish | 443, VNC 5901 | เครือข่ายการจัดการเท่านั้น |
| iDRACไปยังเซิร์ฟเวอร์ ISO | HTTP | พอร์ตของคุณ | iDRAC ทำการดึงไฟล์ ISO |
| พาเนลไปยัง Ceph RGW | Admin Ops | 443 | |
| พาเนลไปยัง SMTP | SMTP | 587 หรือ 465 | |
| พาเนลไปยังผู้ให้บริการ AI | HTTPS | 443 | เฉพาะเมื่อเปิดใช้งานโมดูล AI |
| เกตเวย์ชำระเงินไปยังพาเนล | Webhook | 443 | Stripe และ PayPal เรียกกลับ |
| โหนดไปยังพาเนล | `cmp-agent` | 443 | ลงทะเบียน, ฮาร์ทบีท, อัปเกรด |
| พาเนลไปยังโหนดพร็อกซี IPv6 | SSH | พอร์ตที่คุณป้อน | ติดตั้งเพียงครั้งเดียวเท่านั้น |

## ทำไมจึงสำคัญ {#why-it-matters}

- **แผงควบคุมที่เข้าถึงได้คือแผงควบคุมที่ถูกโจมตีได้** ปิดพอร์ต 3000 ทันทีเมื่อตัวช่วยสร้างการตั้งค่าเสร็จสิ้น โปรแกรมติดตั้งจะดำเนินการนี้ให้โดยอัตโนมัติเมื่อเปิดใช้งาน TLS
- **Worker ต้องทำงานอยู่** จึงจะสามารถสร้างหรือเรียกเก็บเงินได้ `sudo nexcmp status` แสดงทั้งบริการและการตรวจสอบสถานะ
- **วางแผนไฟร์วัลขาออก** หากทราฟฟิกขาออกของเซิร์ฟเวอร์แผงควบคุมถูกกรอง ให้ALLOW ปลายทางในตารางด้านบน
- **ทราฟฟิกการจัดการจะไม่ผ่านเส้นทางสาธารณะ** การเชื่อมต่อกับ CloudStack, Proxmox VE, iDRAC และ Ceph จะส่งตรงจากเซิร์ฟเวอร์แผงควบคุมไปยังระบบเหล่านั้น โดยไม่ผ่าน nginx หรือ Cloudflare
