Nginx Proxy Manager (NPM) เป็น Open source ซึ่งออกแบบมาเพื่อให้การจัดการ Reverse Proxy, SSL, Access Lists ของ Nginx เป็นเรื่องง่าย มันถูกสร้างขึ้นด้วยหน้าเว็บควบคุมที่ใช้งานได้ง่าย ซึ่งมีจุดมุ่งหมายเพื่อช่วยเหลือผู้ใช้ที่ไม่ใช่ผู้เชี่ยวชาญในการใช้ CLI ของ Nginx นอกจากนี้ยังสามารถสร้าง SSL ฟรีผ่าน Let’s Encrypt ได้อีกด้วย

การติดตั้งผ่าน Docker ทำให้ติดตั้งได้งานมาก แถมยังรองรับการใช้งานหลายผู้ใช้ด้วย โดยบทความนี้จะอธิบายกระบวนการติดตั้งใน Docker และแนะนำการใช้งานผ่าน UI รวมถึงการตั้งค่าเบื้องต้น มาดูกัน...

1. Nginx Proxy Manager คืออะไร?

Nginx Proxy Manager (NPM) เป็นเครื่องมืออันทรงพลังที่สร้างขึ้นเพื่อลดความซับซ้อนในการจัดการ Proxy, SSL และความสามารถอื่นๆ ของ Nginx ได้รับการออกแบบโดยคำนึงถึงผู้ใช้ที่อาจไม่ค่อยคุ้นเคยกับความซับซ้อนของ Nginx

เครื่องมือนี้ช่วยให้ผู้ใช้สามารถเปิดเผยบริการเว็บภายในเครือข่าย (หรือคอมพิวเตอร์) ได้อย่างง่ายดาย กล่าวอีกนัยหนึ่งก็คือเครื่องมือนี้มอบเกตเวย์ที่ปลอดภัยและมีประสิทธิภาพสำหรับการรับส่งข้อมูลทางอินเทอร์เน็ต นอกจากนี้ การผสานรวมกับ Let’s Encrypt ยังช่วยให้ผู้ใช้สามารถรักษาความปลอดภัยบริการของตนด้วยใบรับรอง SSL ฟรี

คุณสมบัติหลัก:

  • UI ที่สวยงาม: อินเทอร์เฟซนั้นใช้งานง่ายและเป็นมิตรกับผู้ใช้งาน
  • SSL ฟรี: การรองรับ Let’s Encrypt ในตัวช่วยให้ผู้ใช้สามารถรักษาความปลอดภัยบริการเว็บของตนได้โดยไม่มีค่าใช้จ่ายเพิ่มเติม
  • ติดตั้งผ่าน Docker: Nginx Proxy Manager ถูกสร้างขึ้นเป็น Docker image ซึ่งทำให้การปรับใช้ง่ายขึ้น
  • ผู้ใช้หลายราย: รองรับการกำหนดค่าผู้ใช้เพิ่มเติมด้วยระดับการเข้าถึงที่แตกต่างกัน

2. จะติดตั้ง Nginx Proxy Manager ได้อย่างไร

เราจะติดตั้ง Nginx Proxy Manager ผ่าน docker-compose.yml กัน

services:
  proxy:
    image: jc21/nginx-proxy-manager:latest
    restart: unless-stopped
    ports:
      – 80:80   # Public HTTP Port
      – 81:81   # Admin Web Port
      – 443:443 # Public HTTPS Port
    volumes:
      - proxy-data:/data
      - letsencrypt-date:/etc/letsencrypt
  volumes:
    proxy-data:
    letsencrypt-date:

จากนั้นใช้คำสั่ง docker-compose up -d เมื่อสำเร็จให้เราเข้า http://localhost:81 จะเจอกับหน้าเว็บ

Nginx Proxy Manager Login

เข้ามาครั้งแรกให้เราใส่ค่าดังนี้ ในการเข้าสู่ระบบ

  • Email: admin@example.com
  • Password: changeme

จากนั้นมันจะพาเราไปสมัครผู้ใช้งานใหม่

สมัครผู้ใช้งานใหม่

3. วิธีการใช้ Nginx Proxy Manager UI และกำหนดค่า?

Nginx Proxy Manager มาพร้อมกับเว็บที่ใช้งานง่ายซึ่งช่วยให้สามารถกำหนดค่าและจัดการ Nginx เป็น Proxy server ได้

3.1 แดชบอร์ด

มาพร้อมกับสิ่งที่ชัดเจนซึ่งแสดงสรุปของ Proxy Hosts, Redirection Hosts, Streams และ 404 Hosts การออกแบบแดชบอร์ดช่วยให้เราดูสถานะของเซิร์ฟเวอร์ได้อย่างรวดเร็วและนำทางไปยังส่วนของการกำหนดค่าต่างๆ ได้อย่างรวดเร็ว

Dashboard in Nginx Proxy Manager
Photo by nginxproxymanager.com

3.2 Hosts

ส่วนนี้แสดงรายชื่อ host ทั้งหมด รวมถึง Proxy Hosts, Redirection Hosts, Streams และ 404 Hosts แต่ Host ที่สำคัญคือ Proxy Hosts ซึ่งแสดงแหล่งที่มาและปลายทาง การกำหนดค่า SSL และสถานะออนไลน์

Hosts in Nginx proxy manager
Photo by nginxproxymanager.com

3.3 Access Lists

ส่วนนี้ช่วยให้เราจัดการ Access Lists ได้ โดยให้ความปลอดภัยเพิ่มเติมด้วยการจำกัดว่าผู้ใช้คนใดสามารถดูหรือจัดการ hosts ต่างๆ ได้

Access List in Nginx proxy manager
Photo by nginxproxymanager.com

3.4 ใบรับรอง SSL

ส่วนนี้จะแสดงใบรับรอง SSL ทั้งหมดที่พร้อมใช้งานหรือใช้งานอยู่ รวมถึงรายละเอียด เช่น ผู้ให้บริการและวันที่หมดอายุ

SSL in Nginx proxy manager
Photo by nginxproxymanager.com

3.5 ผู้ใช้

ส่วนผู้ใช้ช่วยให้เราจัดการผู้ใช้ได้โดยตรง โดยจะแสดงภาพรวมของสิทธิ์ของผู้ใช้และความสามารถในการเพิ่มผู้ใช้ใหม่หรือแก้ไขผู้ใช้ที่มีอยู่

Users in Nginx proxy manager
Photo by nginxproxymanager.com

3.6 บันทึกการตรวจสอบ

ส่วนนี้ของ UI จะแสดงประวัติการดำเนินการที่เกิดขึ้นภายใน Proxy Manager บันทึกการตรวจสอบนี้ประกอบด้วยเหตุการณ์ การอัปเดตการกำหนดค่า และการต่ออายุใบรับรอง SSL

Audit log in Nginx proxy manager
Photo by nginxproxymanager.com

4. ตัวอย่างการตั้งค่า Proxy Hosts

การใช้ UI ของ Nginx Proxy Manager ช่วยให้เราสามารถสร้างและจัดการ Proxy Hosts พร้อมใช้งานใบรับรอง SSL และปรับแต่งการตั้งค่าต่าง ๆ ได้อย่างง่ายดายโดยไม่ต้องมีความรู้เกี่ยวกับ Nginx หรือใช้ command-line เลย

4.1 ตั้งค่า Proxy Host

  • ไปที่ Hosts > Proxy Hosts แล้วคลิก Add Proxy Host
  • ป้อนชื่อโดเมน เลือก HTTP หรือ HTTPS และระบุที่อยู่ IP ภายในและพอร์ตของแอพพลิเคชั่นที่เรากำลังใช้
  • เราสามารถเปลี่ยนพารามิเตอร์ เช่น Location, กำหนด SSL และเปลี่ยนค่า Nginx แบบกำหนดเองได้จากที่นี่
New Proxy Host
Photo by nginxproxymanager.com

4.2 กำหนดค่า SSL

ไปที่เมนู SSL Certificates คลิกที่ Add SSL Certificate เลือกขอ SSL ใหม่ผ่าน Let’s Encrypt หรือเพิ่มใบรับรองของเราเองโดยระบุ certificate และ private key ได้เลย

  • กด Add SSL Certificate แล้วเลือก Let’s Encrypt จากนั้นระบุโดเมน, เพิ่มอีเมล และยอมรับข้อกำหนดการบริการของ Let’s Encrypt และสามารถกดทดสอบใบรับรองนี้ได้
Add Let's Encrypt Certificate
Photo by nginxproxymanager.com
  • กลับไปที่ Hosts > Proxy Hosts แล้วกดแก้ไข host ที่ต้องการ มันจะแสดง Edit Proxy Host ให้เมนู SSL จากนั้นคลิกที่ SSL Certificate เลือก ssl ที่เราสร้างไว้ แล้วกดบันทึกได้เลย
Add SSL to Proxy Host

เพียงเท่านี้เราก็สามารถเข้าแอพพลิคชั่นของเราผ่าน https ได้แล้ว สะดวกสบายสุด ๆ

Proxy host online