บทความนี้อาจมีลิงก์ affiliate — เราได้รับค่าคอมมิชชันเมื่อคุณสมัครผ่านลิงก์ของเรา โดยไม่มีค่าใช้จ่ายเพิ่มเติม | นโยบายบรรณาธิการ
Nginx Proxy Manager บน VPS

VPS Guide · Self-Hosting

Nginx Proxy Manager คืออะไร? คู่มือติดตั้งและใช้งานบน VPS ฉบับสมบูรณ์ 2026

โดย ทีมรีวิว CloudPicked · อัปเดตล่าสุด ตุลาคม 2026

ถ้าคุณมี VPS และรัน service หลายตัว (เช่น WordPress, Nextcloud, Gitea, Vaultwarden) บน port ต่างๆ — คงเคยเจอปัญหาว่าจะ expose เป็น domain ยังไงโดยไม่ต้องจำ port พิจารณา Nginx Proxy Manager (NPM) เครื่องมือ Docker ที่ช่วยจัดการ reverse proxy ผ่าน Web UI สวยงาม พร้อม SSL ฟรีจาก Let's Encrypt ที่ต่ออายุอัตโนมัติ

สารบัญ

  1. Nginx Proxy Manager คืออะไร?
  2. ฟีเจอร์หลักและข้อดี
  3. ความต้องการระบบ
  4. ขั้นตอน 1 — ติดตั้ง Docker
  5. ขั้นตอน 2 — ติดตั้ง NPM ด้วย Docker Compose
  6. ขั้นตอน 3 — เข้าสู่ระบบครั้งแรก
  7. ขั้นตอน 4 — สร้าง Proxy Host แรก
  8. ขั้นตอน 5 — ตั้งค่า SSL Certificate
  9. ตั้งค่า Redirect
  10. Access List และ HTTP Auth
  11. จัดการหลายผู้ใช้
  12. ปัญหาที่พบบ่อย
  13. คำถามที่พบบ่อย

Nginx Proxy Manager คืออะไร?

Nginx Proxy Manager คือ Docker image open source ที่สร้างโดย Jamie Curnow (ชื่อใน GitHub: jc21) เพื่อให้ใครก็ตามสามารถตั้งค่า Nginx reverse proxy ได้โดยไม่ต้องเขียน config file ด้วยมือ เพียงแค่คลิกผ่าน Web UI

ปกติการตั้งค่า Nginx ต้องเขียน server block, จัดการ certbot, reload service เอง — ซึ่งใช้เวลาและเกิด error ได้ง่าย NPM ห่อหุ้มทุกอย่างไว้ในแดชบอร์ดเดียว

"มันต้องง่ายพอที่ลิงจะทำได้" — เป้าหมายของผู้สร้าง NPM

ฟีเจอร์หลักและข้อดีของ Nginx Proxy Manager

ฟีเจอร์NPMTraefikCaddy
Web UIสวยงามมี (พื้นฐาน)ไม่มี (CLI/config)
SSL อัตโนมัติใช่ใช่ใช่
Docker-nativeใช่ใช่รองรับ
เหมาะกับSelf-hostersK8s/MicroservicesConfig-as-code
ความยากง่ายมากกลาง-ยากกลาง

ข้อมูล ณ ตุลาคม 2026 — ตรวจสอบล่าสุดที่เว็บผู้ให้บริการ

ความต้องการระบบ

ก่อนติดตั้ง NPM คุณต้องมี:

หมายเหตุ: ถ้าคุณยังไม่มี VPS แนะนำเลือก provider ที่มีเซิร์ฟเวอร์ในเอเชียเพื่อ latency ต่ำ เช่น AsiaGB, Bangmod Cloud หรือ DigitalOcean (Singapore region)

ขั้นตอน 1 — ติดตั้ง Docker บน Ubuntu

SSH เข้า VPS แล้วรันคำสั่งต่อไปนี้ (Ubuntu 22.04/24.04):

# อัพเดท package list
sudo apt update && sudo apt upgrade -y

# ติดตั้ง dependencies
sudo apt install -y ca-certificates curl gnupg

# เพิ่ม Docker GPG key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# เพิ่ม Docker repository
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# ติดตั้ง Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# เพิ่ม user เข้า docker group (ไม่ต้อง sudo ทุกครั้ง)
sudo usermod -aG docker $USER
newgrp docker

ทดสอบว่า Docker ทำงานได้:

docker --version
docker compose version

ขั้นตอน 2 — ติดตั้ง Nginx Proxy Manager ด้วย Docker Compose

สร้าง directory สำหรับ NPM:

mkdir ~/nginx-proxy-manager && cd ~/nginx-proxy-manager

สร้างไฟล์ docker-compose.yml:

nano docker-compose.yml

วางเนื้อหาต่อไปนี้:

services:
  app:
    image: 'docker.io/jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'    # HTTP traffic
      - '81:81'    # Admin UI
      - '443:443'  # HTTPS traffic
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

บันทึกไฟล์ (Ctrl+O, Enter, Ctrl+X) แล้วรัน:

docker compose up -d

ตรวจสอบว่า container กำลังรัน:

docker compose ps

ควรเห็น container state เป็น Up และ port 80, 81, 443 ถูก bind แล้ว

firewall: ถ้าใช้ UFW ต้องเปิด port ก่อน: sudo ufw allow 80,81,443/tcp && sudo ufw reload

ขั้นตอน 3 — เข้าสู่ระบบครั้งแรก

เปิดเบราเซอร์ไปที่ http://<IP-ของ-VPS>:81 (เช่น http://123.45.67.89:81)

ครั้งแรก ระบบจะขอ login ด้วย default credentials:

หลัง login ครั้งแรก ระบบจะขอให้เปลี่ยน email และ password ใหม่ทันที — ทำเดี๋ยวนี้เลย อย่าใช้ default password ใน production

แดชบอร์ดหลัก

หลัง login จะเห็น dashboard ที่แสดง:

ขั้นตอน 4 — สร้าง Proxy Host แรก

สมมติว่าคุณมี service รันอยู่ที่ localhost:3000 (เช่น Gitea, Nextcloud, หรือ app ของตัวเอง) และต้องการ expose ผ่าน domain app.example.com

ขั้นตอน:

  1. ไปที่ Hosts → Proxy Hosts
  2. คลิก "Add Proxy Host"
  3. กรอกข้อมูล:
    • Domain Names: app.example.com
    • Scheme: http
    • Forward Hostname/IP: localhost หรือ IP ของ container
    • Forward Port: 3000
    • เปิด "Block Common Exploits"
    • เปิด "Websockets Support" (ถ้า app ใช้ WebSocket)
  4. คลิก "Save"
Docker Network Tip: ถ้า service รันใน Docker container อื่น ควรสร้าง Docker network ร่วมกัน แล้วใช้ container name แทน localhost เพื่อ communicate ระหว่าง container ได้

การใช้ Docker Network

สร้าง shared network ชื่อ proxy_net:

docker network create proxy_net

แก้ไข docker-compose.yml ของ NPM:

services:
  app:
    image: 'docker.io/jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    networks:
      - proxy_net

networks:
  proxy_net:
    external: true

แล้วให้ service อื่นๆ join network เดียวกัน และใช้ container name เป็น Forward Hostname ใน NPM

ขั้นตอน 5 — ตั้งค่า SSL Certificate จาก Let's Encrypt

หลังสร้าง Proxy Host แล้ว ให้ตั้งค่า SSL:

  1. แก้ไข Proxy Host ที่ต้องการ → แท็บ "SSL"
  2. SSL Certificate: เลือก "Request a new SSL Certificate"
  3. เปิด "Force SSL" (redirect HTTP → HTTPS อัตโนมัติ)
  4. เปิด "HTTP/2 Support"
  5. กรอก Email address สำหรับ Let's Encrypt notifications
  6. ยอมรับ Terms of Service
  7. คลิก "Save"

NPM จะขอ certificate จาก Let's Encrypt โดยอัตโนมัติและจะ renew ให้ก่อนหมดอายุ (ใบ Let's Encrypt อายุ 90 วัน)

สำคัญ: A Record ของ domain ต้องชี้มาที่ IP ของ VPS แล้ว และ port 80 ต้องเปิดก่อน NPM จะขอ certificate ได้สำเร็จ (Let's Encrypt ใช้ HTTP-01 challenge)

ตั้งค่า Redirect Host

Redirect ใช้สำหรับส่งผู้ใช้จาก domain หนึ่งไปอีก domain เช่น redirect www.example.com → example.com

  1. ไปที่ Hosts → Redirection Hosts
  2. คลิก "Add Redirection Host"
  3. กรอก Domain Names: www.example.com
  4. Forward Domain Name: example.com
  5. เลือก HTTP Code: 301 (permanent) หรือ 302 (temporary)
  6. เปิด SSL ถ้าต้องการ
  7. คลิก "Save"

Access List และ HTTP Basic Authentication

Access List ใช้จำกัดการเข้าถึง Proxy Host โดยกำหนดได้ว่า IP ไหนเข้าได้ หรือต้องใส่ username/password

สร้าง Access List

  1. ไปที่ Access Lists → Add Access List
  2. ตั้งชื่อ (เช่น "Admin Only")
  3. แท็บ Authorization: เพิ่ม username/password สำหรับ HTTP Auth
  4. แท็บ Access: กำหนด IP ที่อนุญาต (allow/deny)
  5. Save แล้วนำ Access List ไป assign กับ Proxy Host ที่ต้องการ

เหมาะกับใคร?

Nginx Proxy Manager เหมาะสำหรับ self-hosters และ DevOps ที่รัน service หลายตัวบน VPS เดียว ต้องการ UI ที่ใช้งานง่ายและ SSL อัตโนมัติโดยไม่ต้องเขียน Nginx config ด้วยมือ

การจัดการหลายผู้ใช้

NPM รองรับ multi-user ซึ่งเหมาะสำหรับทีมหรือการ delegate การจัดการ:

เพิ่มผู้ใช้ใหม่: ไปที่ Users → Add User กรอก email/password และเลือก role ที่เหมาะสม

ปัญหาที่พบบ่อยและวิธีแก้

SSL Request ล้มเหลว

502 Bad Gateway

Admin UI เข้าไม่ได้

Upgrade NPM เป็น version ใหม่

docker compose pull
docker compose up -d

ต้องการ VPS ที่เหมาะกับการรัน NPM?

แนะนำ VPS ที่มีเซิร์ฟเวอร์ในไทยและเอเชีย เพื่อ latency ต่ำและ support ภาษาไทย

ดู AsiaGB VPS   ดู Bangmod Cloud

คำถามที่พบบ่อย (FAQ)

Nginx Proxy Manager ฟรีไหม?

ใช่ NPM เป็น open source (MIT License) ใช้ได้ฟรีทั้งส่วนตัวและเชิงพาณิชย์ Docker image ดาวน์โหลดได้จาก Docker Hub

NPM รองรับ Wildcard SSL ได้ไหม?

ได้ แต่ต้องใช้ DNS Challenge แทน HTTP Challenge กำหนดได้ใน SSL tab โดยเลือก DNS challenge provider (Cloudflare, Route53 ฯลฯ) พร้อมกรอก API key

NPM ใช้ฐานข้อมูลอะไร?

ค่าเริ่มต้น NPM ใช้ SQLite ในตัว สำหรับ production scale ขนาดใหญ่รองรับ MySQL/MariaDB แต่สำหรับ self-hosting ทั่วไป SQLite เพียงพอแล้ว

NPM ต้องการ armv7 ได้ไหม?

NPM เวอร์ชัน 2.14+ ไม่รองรับ armv7 แล้ว (เนื่องจาก Node.js drop support) ถ้าใช้ Raspberry Pi รุ่นเก่าต้องใช้ image tag 2.13.7

ควร expose port 81 (Admin UI) ต่อ internet หรือไม่?

ไม่ควร แนะนำปิด port 81 จากภายนอก (sudo ufw delete allow 81/tcp) แล้วใช้ SSH tunnel หรือ VPN เพื่อ access Admin UI ด้วยความปลอดภัยสูงสุด

สรุป

Nginx Proxy Manager (เวอร์ชัน 2.16.0 ณ ตุลาคม 2026) เป็นเครื่องมือที่ดีที่สุดสำหรับ self-hosters ที่ต้องการ reverse proxy + SSL อัตโนมัติโดยไม่ต้องผ่านความยุ่งยากของ Nginx config

จุดแข็งคือ Web UI ใช้ง่าย ฟรี 100% และ community ขนาดใหญ่บน Reddit และ GitHub Discussions จุดอ่อนคือไม่เหมาะสำหรับ environment ที่ต้องการ config-as-code หรือ integration กับ Kubernetes ซึ่งในกรณีนั้น Traefik หรือ Ingress Controller ตรงกว่า

แต่ถ้าคุณมี VPS และอยากรัน 5-20 service พร้อม SSL ฟรีและ UI สวยงาม — NPM ตอบโจทย์ได้ดีมาก