Nginx เป็นเว็บเซิร์ฟเวอร์และ Reverse Proxy ที่ได้รับความนิยมอย่างแพร่หลาย แต่การตั้งค่าและบริหารจัดการ Nginx ผ่านไฟล์คอนฟิกอาจเป็นเรื่องที่ยุ่งยากสำหรับผู้ที่ไม่คุ้นเคยกับการใช้ Command Line Interface (CLI) ดังนั้น "Nginx UI" จึงเข้ามาช่วยให้การบริหารจัดการเป็นเรื่องง่ายขึ้นผ่าน Web Interface ซึ่งในบทความนี้ผู้เขียนจะแนะนำวิธีการติดตั้งและใช้งาน Nginx UI จาก https://nginxui.com ซึ่งเป็น Web Interface ที่ช่วยให้สามารถบริหารจัดการ Nginx ได้ง่ายขึ้น
Note : ในบทความนี้ผู้เขียนจะทำการติดตั้งบนเซิร์ฟเวอร์ที่ใช้ระบบปฏิบัติการ Debian 12 "bookworm"
ขั้นตอนที่ 1 การติดตั้ง Nginx
ใช้คำสั่ง apt install nginx -y ในการติดตั้ง Nginx และรอจนกว่าจะติดตั้งเสร็จ
ตรวจสอบสถานะของ Nginx ที่เราติดตั้งด้วยคำสั่ง systemctl status nginx และตั้งค่าให้ Nginx เริ่มทำงานอัตโนมัติหลังจากรีบูตระบบด้วยคำสั่ง systemctl enable nginx
ตรวจสอบเวอร์ชันของ Nginx ด้วยคำสั่ง nginx -v
ขั้นตอนที่ 2 การติดตั้ง Nginx UI
ติดตั้ง Nginx UI ด้วย Install Script จากเว็บไซต์ของผู้พัฒนา https://nginxui.com/guide/install-script-linux.html
ใช้คำสั่ง bash -c "$(curl -L https://raw.githubusercontent.com/0xJacky/nginx-ui/main/install.sh)" @ install ในการติดตั้ง
รอจนกว่าจะติดตั้งเสร็จสิ้น แล้วตรวจสอบสถานะของ Nginx UI ด้วยคำสั่ง systemctl status nginx-ui จากนั้นตั้งค่าให้ Nginx UI เริ่มทำงานอัตโนมัติหลังจากรีบูตระบบด้วยคำสั่ง systemctl enable nginx-ui
ตรวจสอบการตั้งค่าของ Nginx UI โดยค่าเริ่มต้นจะทำงานที่ Port 9000 โดยใช้คำสั่ง nano /usr/local/etc/nginx-ui/app.ini เพื่อเรียกดูและแก้ไขการตั้งค่าต่าง ๆ หากมีการแก้ไขการตั้งค่าจะต้องใช้คำสั่ง systemctl restart nginx-ui เพื่อรีสตาร์ทเซอร์วิสเสมอ
เปิดเบราว์เซอร์เข้าสู่ http://<SERVER-IP>:9000 โดยหน้าเริ่มต้นของ Nginx UI จะให้เราตั้งค่าผู้ใช้หลักโดยให้ระบุข้อมูลต่อไปนี้ลงในฟอร์ม
- อีเมล (Email)
- ชื่อผู้ใช้งาน (Username)
- รหัสผ่าน (Password)
- ชื่อฐานข้อมูล (Database) ช่องนี้เป็น Optional หากไม่ระบุชื่อจะใช้ค่าเริ่มต้นเป็น "database"
จากนั้นกดที่ปุ่ม "Install"
หลังจากตั้งค่าเสร็จระบบจะพาเรามาที่หน้า Login ให้เราใช้ข้อมูลผู้ใช้หลักที่ได้ทำการตั้งค่าไว้
เมื่อ Login สำเร็จระบบจะพาเรามาที่หน้า Dashboard ของ Nginx UI เป็นอันเสร็จสิ้นการติดตั้ง
ขั้นตอนที่ 3 การติดตั้ง SSL
มาที่ Nginx UI แล้วเข้าไปที่เมนู Certificates / Certificates List / Import Certificate จากนั้นทำการตั้งค่า
Name : SSL-RMUTL (เป็นการกำหนดชื่อ SSL)
SSL Certificate Path : /etc/nginx/ssl/rmutl.ac.th.crt (เป็นการตำแหน่งไฟล์ SSL Certificate)
SSL Certificate Key Path : /etc/nginx/ssl/rmutl.ac.th.key (เป็นการตำแหน่งไฟล์ SSL Private Key)
จากนั้นเลื่อนลงมาด้านล่างให้ระบุข้อมูล SSL โดยจะต้องกรอกข้อมูลดังนี้
SSL Certificate Content : ใช้ข้อมูลจากไฟล์ .crt
SSL Certificate Key Content : ใช้ข้อมูลจากไฟล์ .key
จากนั้นกดปุ่ม "Save"
ตรวจสอบสถานะของใบรับรองได้ที่เมนู Certificates / Certificates List หากถูกต้องจะขึ้นสถานะ "Valid"
ขั้นตอนที่ 4 การติดตั้งโดเมน
ก่อนอื่นให้เราทำการชี้โดเมนมาที่เซิร์ฟเวอร์ก่อน หลังจากนั้นมาที่ Nginx UI แล้วเข้าไปที่เมนู Manage Sites / Sites List / Add Site จากนั้นให้เราตั้งค่า Directives ดังนี้
listen : 0.0.0.0:80 (เป็นการกำหนดให้เซิร์ฟเวอร์ฟังการเชื่อมต่อจากพอร์ต 80)
server_name : e-asset.rmutl.ac.th www.e-asset.rmutl.ac.th (เป็นการกำหนดชื่อโดเมนที่เซิร์ฟเวอร์นี้จะรองรับ)
root : /srv/e-asset.rmutl.ac.th (เป็นการกำหนดไดเรกทอรีของไฟล์เว็บไซต์)
index : index.html (เป็นการกำหนดไฟล์หน้าแรกของเว็บไซต์)
จากนั้นกดที่ปุ่ม "Next" จะไปยังหน้า Configure SSL
มาที่หน้า Configure SSL ให้เรากดเปิด Enable TLS จากนั้นกดปุ่ม "Change Certificate" แล้วเลือก SSL-RMUTL ที่เราได้เพิ่มไว้ในขั้นตอนที่ 3 แล้วกดปุ่ม "OK"
ตรวจสอบสถานะของ SSL หากถูกต้องจะขึ้นสถานะ "Valid"
Note : หากใช้ต้องการใช้ Let's Encrypt ให้เราเปิดการใช้งานที่ปุ่ม "Encrypt website with Let's Encrypt" ระบบจะติดตั้ง SSL ให้เราอัตโนมัติ
จากนั้นให้เราตั้งค่าในส่วนของ Directives ดังนี้
listen : 0.0.0.0:443 ssl (เป็นการกำหนดให้ Nginx ฟังการเชื่อมต่อ HTTPS บนพอร์ต 443 ซึ่งเป็นพอร์ตมาตรฐานของ SSL/TLS)
server_name : e-asset.rmutl.ac.th www.e-asset.rmutl.ac.th (เป็นการกำหนดชื่อโดเมนที่เซิร์ฟเวอร์นี้จะรองรับ)
root : /srv/e-asset.rmutl.ac.th (เป็นการกำหนดไดเรกทอรีของไฟล์เว็บไซต์)
index : index.html (เป็นการกำหนดไฟล์หน้าแรกของเว็บไซต์)
ssl_certificate : /etc/nginx/ssl/rmutl.ac.th.crt (เป็นการกำหนดตำแหน่งของไฟล์ SSL Certificate)
ssl_certificate_key : /etc/nginx/ssl/rmutl.ac.th.key (เป็นการกำหนดตำแหน่งของไฟล์ SSL Private Key)
จากนั้นกดปุ่ม "Save" เป็นอันเสร็จสิ้น
ใช้ https://www.ssllabs.com ทดสอบการติดตั้ง SSL ว่าทำงานถูกต้องหรือไม่
Note : ในบางครั้งการทดสอบอาจได้คะแนนลดลงมา ssllabs จะแสดงรายงานให้เราทำการปรับแต่งการตั้งค่า SSL ซึ่งจะทำให้ได้คะแนนสูงขึ้น
สรุป : การใช้งาน Nginx UI เป็นทางเลือกที่ช่วยให้การบริหารจัดการเซิร์ฟเวอร์ Nginx เป็นเรื่องง่ายยิ่งขึ้น โดยไม่จำเป็นต้องพึ่งพาการแก้ไขไฟล์คอนฟิกผ่าน CLI เพียงอย่างเดียว ผู้ดูแลระบบสามารถเพิ่ม ลบ หรือแก้ไข Virtual Hosts รวมถึงดูสถานะการทำงานของ Nginx ได้แบบเรียลไทม์ผ่าน Web Interface ที่ใช้งานง่าย ช่วยลดความผิดพลาดจากการพิมพ์คำสั่ง และเพิ่มความสะดวกในการจัดการสำหรับผู้ที่อาจไม่ถนัดด้านคำสั่ง CLI ทั้งยังเหมาะกับการใช้งานในสภาพแวดล้อมที่ต้องการความรวดเร็วในการดูแลและปรับแต่งระบบ