Nginx Proxy Manager: Quản Lý Reverse Proxy Dễ Dàng Cho Homelab
Giới thiệu
Khi xây dựng Homelab hoặc triển khai nhiều dịch vụ web trong mạng nội bộ (như WordPress, Odoo, Nextcloud…), bạn sẽ gặp một vấn đề quen thuộc: router chỉ cho phép NAT một số port (80, 443), nhưng bạn lại muốn nhiều dịch vụ cùng hoạt động với nhiều tên miền khác nhau.
Thông thường, giải pháp là sử dụng Reverse Proxy. Tuy nhiên việc cấu hình thủ công với Nginx hay Apache thường phức tạp, tốn nhiều thời gian.
👉 Đó là lúc Nginx Proxy Manager (NPM) phát huy tác dụng – một công cụ có giao diện web trực quan, cài đặt đơn giản, quản lý dễ dàng, hỗ trợ SSL Let’s Encrypt tự động.
Trong bài viết này, mình sẽ hướng dẫn bạn cách cài đặt và cấu hình Nginx Proxy Manager từ A–Z để quản lý reverse proxy cho Homelab hay server cá nhân.
Tính năng nổi bật của Nginx Proxy Manager
- Giao diện Web UI trực quan, dễ sử dụng.
- Tích hợp chứng chỉ SSL miễn phí từ Let’s Encrypt.
- Quản lý Proxy Hosts, Redirects, Streams, và cả 404 Hosts.
- Hỗ trợ xác thực HTTP Basic Auth để bảo vệ dịch vụ.
- Quản lý nhiều người dùng, phân quyền dễ dàng.
Chuẩn bị trước khi cài đặt
Để Nginx Proxy Manager hoạt động trơn tru, bạn cần chuẩn bị:
- Router/Firewall: mở port 80 (HTTP) và 443 (HTTPS).
- Tên miền hoặc Dynamic DNS: trỏ về địa chỉ IP public của bạn.
- Máy chủ chạy Docker: có thể là VPS hoặc máy trong Homelab (Ubuntu/Debian/CentOS).
Hướng dẫn cài đặt Nginx Proxy Manager
1. Cài Docker & Docker Compose
Trên hệ điều hành Ubuntu/Debian, cài bằng lệnh:
sudo apt update
sudo apt install docker.io docker-compose -y
Trên CentOS/RHEL:
sudo yum install docker docker-compose -y
Khởi động và bật Docker:
sudo systemctl enable --now docker
2. Tạo file Docker Compose
Tạo một thư mục để chứa cấu hình:
mkdir ~/nginx-proxy-manager && cd ~/nginx-proxy-manager
Tạo file docker-compose.yml với nội dung:
version: "3"
services:
app:
image: jc21/nginx-proxy-manager:latest
restart: unless-stopped
ports:
- "80:80"
- "81:81"
- "443:443"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
3. Khởi động dịch vụ
Chạy Nginx Proxy Manager:
docker-compose up -d
Sau khi khởi động, truy cập giao diện web tại:
http://<IP-Server>:81

4. Đăng nhập lần đầu
Thông tin mặc định:
- Email:
admin@example.com - Password:
changeme
Ngay sau đó, bạn nên đổi email và mật khẩu để bảo mật.
5. Tạo Proxy Host
Ví dụ bạn có dịch vụ WordPress chạy tại 192.168.1.100:8080, bạn muốn truy cập bằng blog.example.com:
- Vào Proxy Hosts → Add Proxy Host.
- Nhập
Domain Names:blog.example.com. - Forward Hostname/IP:
192.168.1.100. - Forward Port:
8080. - Chọn Block Common Exploits để tăng bảo mật.
- Tab SSL: chọn Request a new SSL certificate với Let’s Encrypt.
6. Kiểm tra hoạt động
- Truy cập
https://blog.example.com→ WordPress chạy qua reverse proxy kèm SSL. - Có thể làm tương tự cho Odoo, Nextcloud hoặc bất kỳ ứng dụng nội bộ nào khác.
Một số lỗi thường gặp & cách xử lý
- Tên miền chưa trỏ đúng IP public → kiểm tra lại DNS.
- Router chưa mở port 80/443 → cấu hình lại NAT/Port Forwarding.
- Hairpin NAT: nếu trong cùng mạng nội bộ mà không truy cập được, cần bật tính năng NAT Loopback hoặc dùng Split-DNS.


Trống!