ขั้นตอนการติดตั้ง Nginx Proxy Manager บน ubuntu 24.04

ขั้นตอนที่ 1: ติดตั้ง Docker และ Docker Compose (หากยังไม่มี)

เปิด Terminal บนเครื่อง Ubuntu แล้วรันคำสั่งเหล่านี้ทีละบรรทัดครับ:

sudo apt update
sudo apt install docker.io docker-compose -y

ขั้นตอนที่ 2: สร้างโฟลเดอร์สำหรับ Nginx Proxy Manager

เพื่อความเป็นระเบียบและให้จัดการไฟล์ข้อมูลได้ง่าย ให้สร้างโฟลเดอร์สำหรับเก็บ Config ครับ:

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

ขั้นตอนที่ 3: สร้างไฟล์ Docker Compose

สร้างไฟล์ docker-compose.yml โดยใช้ Text Editor :

nano docker-compose.yml

คัดลอกโค้ดด้านล่างนี้ไปวางในไฟล์ (การตั้งค่านี้จะใช้ SQLite เป็นฐานข้อมูลเบื้องหลัง ซึ่งง่ายและไม่ต้องตั้งค่า Database ให้วุ่นวายครับ):

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

บันทึกไฟล์และออกจาก nano (กด Ctrl+O -> Enter -> Ctrl+X)

ขั้นตอนที่ 4: สั่งรันระบบ

รันคำสั่งนี้เพื่อดาวน์โหลดและเปิดใช้งาน Nginx Proxy Manager ในโหมด Background:

sudo docker-compose up -d

การเข้าใช้งานหน้า Web GUI ครั้งแรก

เมื่อระบบทำงานแล้ว คุณสามารถเข้าจัดการผ่าน Web Browser ได้ทันที:

ไปที่: http://<IPของเครื่องUbuntu>:81

ข้อมูลล็อกอินเริ่มต้น (Default Login):

Email: [email protected]

Password: changeme

เมื่อล็อกอินครั้งแรก ระบบจะบังคับให้คุณเปลี่ยนชื่อ อีเมล และตั้งรหัสผ่านใหม่ทันทีเพื่อความปลอดภัย

วิธีเพิ่มเว็บไซต์ (Proxy Host)

เมื่อเข้าไปที่หน้า Dashboard แล้ว การชี้โดเมนไปยังแอปพลิเคชันของคุณทำได้ง่ายๆ ดังนี้:

ไปที่เมนู Hosts -> Proxy Hosts -> กดปุ่ม Add Proxy Host

Domain Names: ใส่ชื่อโดเมนของคุณ (เช่น app.yourdomain.com)

Forward Hostname / IP: ใส่ IP ของเครื่องปลายทางที่รันแอปพลิเคชันอยู่

Forward Port: ใส่ Port ของแอปพลิเคชันนั้นๆ

ไปที่แท็บ SSL -> เลือก Request a new SSL Certificate -> ติ๊กยอมรับเงื่อนไข -> กด Save (ระบบจะดึง HTTPS มาให้และต่ออายุให้อัตโนมัติครับ)

คุณต้องทำการชี้ A DNS ของโดเมนเนมมาที่หมายเลข IP ของเครื่อง Ubuntu เพื่อให้พร้อมสำหรับการกดขอ SSL ในหน้าเว็บได้ทันที?