Danh mục: Computer

  • Nginx Proxy Manager – Quản lý Reverse Proxy trực quan bằng giao diện Web UI

    Cập nhật 01/2025: Bổ sung clip Youtube hướng dẫn

    Khi thiết lập các dịch vụ web trong homelab, một rắc rối mình phải giải quyết là “Làm sao có thể truy cập được các dịch vụ này từ Internet tối ưu nhất?

    Ví dụ: Homelab của mình đang có 1 website WordPress trên máy ảo với địa chỉ IP 192.168.0.60 và 1 website Odoo trên máy ảo với địa chỉ 192.168.0.70.

    Mình muốn truy cập đến hai dịch vụ này từ bên ngoài thông qua 2 tên miền sau:

    • WordPress: truy cập qua tên miền https://test1.thuanbui.me
    • Odoo: truy cập qua tên miền https://test2.thuanbui.me

    Cả hai tên miền đều yêu cầu kết nối qua giao thức HTTPS, sử dụng cổng 443 trên 2 IP LAN khác nhau. Trong khi đó Router mạng chỉ có thể cấu hình NAT port 443 từ WAN vào 1 địa chỉ IP nội bộ trong mạng LAN. Giờ phải làm sao?

    Cách duy nhất để giải quyết vấn đề này là sử dụng Reverse Proxy để làm trung gian nhận kết nối từ máy khách (client) và chuyển tiếp đến máy chủ tương ứng.

    Reverse Proxy là gì?
    Trong hệ thống mạng thông tin, reverse proxy là một loại proxy server trung gian giữa một máy chủ và các clients gửi tới các yêu cầu. Nó kiểm soát yêu cầu của các clients, nếu hợp lệ, sẽ luân chuyển đến các servers thích ứng. (Wikipedia)

    Mình đã thử qua nhiều giải pháp Reverse Proxy khác nhau: Apache, Nginx, HAProxy, Treafik,… nhưng đa số đều phức tạp và khó sử dụng. Chỉ đến khi tìm ra Nginx Proxy Manager, việc quản lý Reverse Proxy trong Homelab của mình mới trở nên đơn giản và tiện lợi hơn hẳn.

    Bài viết này sẽ hướng dẫn bạn cách cài đặt và cấu hình Nginx Proxy Manager để quản lý các dịch vụ mạng trong Homelab tiện lợi hơn.

    Dưới đây là sơ đồ kết nối hệ thống mạng LAN mình sử dụng cho bài viết này.

    I. Giới thiệu Nginx Proxy Manager

    Nginx Proxy Manager (NPM) là một ứng dụng chạy trên nền Docker giúp bạn dễ dàng cấu hình Reverse Proxy cho các dịch vụ mạng cài đặt trong homelab hoặc VPS. Nó còn được tích hợp công cụ tạo chứng chỉ SSL miễn phí từ Let’s Encrypt.

    Tính năng

    • Giao diện quản lý bảo mật và thân thiện dựa trên Tabler
    • Dễ dàng cấu hình chuyển tiếp, chuyển hướng tên miền mà không cần biết gì về cách cấu hình Nginx.
    • Tạo chứng chỉ SSL miễn phí từ Let’s Encrypt
    • Tạo danh sách truy cập và thiết lập xác thực HTTP bảo mật cho máy chủ
    • Cấu hình Nginx nâng cao tuỳ theo nhu cầu sử dụng
    • Quản lý tài khoản, phân quyền và lịch sử làm việc.

    II. Chuẩn bị hệ thống

    Để sử dụng Nginx Proxy Manager, bạn cần phải chuẩn bị các bước sau

    1. Truy cập vào Router mạng chính trong nhà và tìm đến khu vực thiết lập NAT / Port Forwarding

    2. Cấu hình NAT Port Forwarding trên Router cho hai cổng 80 (HTTP) và 443 (HTTPS) chuyển hướng đến máy tính / máy ảo cài Nginx Proxy Manager.

    3. Thiết lập Dynamic DNS cho những tên miền bạn cần sử dụng để truy cập vào mạng nội bộ ở nhà.

    4. Nginx Proxy Manager sẽ làm trung gian chuyển tiếp các yêu cầu từ client đến các dịch vụ web trong mạng nội bộ.

    III. Cài đặt Nginx Proxy Manager

    1. Cài đặt Docker và Docker-Compose

    Tham khảo lại bài viết sau để biết cách cài đặt Docker & Docker-Compose lên máy

    Thuan Bui’s Blog — Web Dev, AI & Self-Hosting

    Hướng dẫn cài đặt Docker, Docker Compose trên Linux (Ubuntu / Arch / Debian …)

    Hướng dẫn cài đặt Docker và Docker Compose trên Ubuntu 20.04 LTS từng bước chi tiết, bao gồm cách cài nhanh chỉ với 2 lệnh.

    2. Tạo file compose.yml

    Đăng nhập SSH vào máy và tạo file compose.yml cho Nginx Proxy Manager

    mkdir nginxproxymanager
    cd nginxproxymanager
    nano compose.yml

    Nhập vào nội dung sau và lưu lại.

    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

    3. Kích hoạt Nginx Proxy Manager

    docker compose up -d

    Nếu không quen làm việc trên giao diện dùng lệnh, bạn có thể sử dụng chức năng Stack của Portainer để thay thế cho bước 2 và 3.

    4. Truy cập WebUI

    Truy cập vào giao diện Web UI của Nginx Proxy Manager theo địa chỉ

    http://127.0.0.1:81

    Nếu bạn cài đặt trên máy ảo, hãy truy cập Web UI theo địa chỉ IP của máy

    http://<IP-Address>:81

    Đăng nhập bằng tài khoản Admin mặc định dưới đây

    Email:    [email protected]
    Password: changeme
    Khi đăng nhập lần đầu tiên, Nginx Proxy Manager sẽ yêu cầu bạn cập nhật thông tin Admin: Tên, Nickname, Email và Password.

    IV. Tạo Proxy Host

    Mình sẽ tạo 2 Proxy Host cho 2 dịch vụ web WordPress và Odoo như đã đề cập ở đầu bài viết

    • Tên miền https://test1.thuanbui.me chuyển tiếp vào WordPress trên IP LAN 192.168.0.60
    • Tên miền https://test2.thuaunbui.me chuyển tiếp vào Odoo trên IP LAN 192.168.0.70

    1. Tạo Proxy Host cho WordPress kèm chứng chỉ SSL

    Bấm vào Proxy Hosts
    Bấm vào Add Proxy Host để tạo mới
    Tab Details: nhập vào thông tin tương ứng rồi chuyển qua tab SSL để cấu hình tiếp
    Mục SSL Certificate: chọn Request a new SSL Certificate, chọn thêm Force SSL, HTTP/2 Support, Điền email, chọn I Agree to ... và bấm Save

    Chờ vài phút để hệ thống xác thực và tạo chứng chỉ SSL cho tên miền. Nếu bị báo lỗi Internal Error, bạn cần kiểm tra lại các thông số sau:

    • Tên miền đã trỏ về đúng Public IP của mạng nhà chưa?
    • Trên Router đã chỉnh NAT Port 80 và 443 về IP LAN của Nginx Proxy Manager chưa?
    Tên miền được chỉnh CNAME trỏ về DDNS của Mikrotik

    Nếu xác thực SSL thành công, bạn sẽ thấy cột SSL có ghi thêm chữ Let’s Encrypt.

    Tạo Proxy Host kèm chứng chỉ SSL thành công

    Mình đã có thể truy cập thành công vào WordPress từ địa chỉ https://test1.thuanbui.me

    Truy cập vào WordPress thành công theo tên miền

    Chú ý: Hãy thử truy cập vào tên miền bằng 4G trên điện thoại để kiểm tra dịch vụ có hoạt động ổn chưa. Nếu bạn dùng mạng ở nhà truy cập vào dịch vụ thông qua tên miền đã dùng để thiết lập Proxy Host, nhiều khả năng sẽ bị báo lỗi không truy cập được. Lý do: Router chưa được cấu hình Hairpin NAT.

    Để có thể truy cập vào tên miền khi dùng mạng ở nhà, bạn cần thiết lập thêm Hairpin NAT như hướng dẫn dưới đây:

    Thuan Bui’s Blog — Web Dev, AI & Self-Hosting

    Hướng dẫn cấu hình Destination NAT & Hairpin NAT trên router Mikrotik

    Hướng dẫn cấu hình Hairpin NAT trên router Mikrotik để truy cập server trong nhà qua tên miền khi đang ở trong cùng mạng LAN.

    2. Tạo Proxy Host cho Odoo kèm chứng chỉ SSL (DNS Challenge)

    Mình sẽ tạo thêm 1 Proxy Host nữa cho Odoo. Nhưng lần này sẽ chuyển qua xác thực SSL bằng cách sử dụng DNS Challenge, thay vì phải trỏ tên miền về IP của máy.

    Với cách xác thực SSL bằng DNS Challenge, mình chưa cần phải trỏ tên miền về Public IP ngay lập tức. Thay vào đó, Let’s Encrypt sẽ xác thực tên miền thông qua bản ghi TXT Record được thiết lập trên DNS.

    Tạo Proxy Host mới cho tên miền test.thuanbui.me

    Do Odoo hoạt động trên cổng 8069 nên mình sẽ nhập 8069 vào ô Forward Port.

    Bấm tiếp vào tab SSL để tạo chứng chỉ SSL cho tên miền test2.thuanbui.me.

    • Bấm chọn Use a DNS Challenge để sử dụng cách xác nhận tên miền thông qua DNS.
    • DNS Provider: chọn Cloudflare
    • Credentials File Content: nhập vào API Token của Cloudflare.

    Bạn cần tạo API Token mới trên Cloudflare để điền vào ô Credentials File Content: xem hướng dẫn ở đây.

    Xác thực SSL bằng DNS Challenge

    Bấm Save. Chờ khoảng 1-2 phút để NPM xác thực tên miền thông qua Cloudflare và tạo Proxy Host.

    Tạo thành công Proxy Host mới cho tên miền https://test2.thuanbui.me

    Sau khi đã tạo Proxy Host thành công, bạn cần điều chỉnh lại cho tên miền trỏ về đúng địa chỉ Public IP ở nhà. Odoo đã có thể truy cập thông qua tên miền mới https://test2.thuanbui.me, không cần phải gõ dài dòng https://192.168.0.70:8069 nữa.

    Truy cập vào Odoo bằng địa chỉ https://test2.thuanbui.me

    V. Tổng kết

    Mình vừa mới giới thiệu về Nginx Proxy Manager – ứng dụng giúp quản lý Reverse Proxy đơn giản và hiệu quả dành cho các ứng dụng web trong Homelab. Bên cạnh tính năng tạo Proxy Host mình đã chia sẻ ở trên, NPM còn nhiều chức năng khác như tạo Redirection Hosts, Stream, 404 Hosts,… dành cho bạn khám phá.

    Chúc bạn cài đặt và cấu hình Nginx Proxy Manager thành công và quản lý Homelab hiệu quả hơn!

    Nguồn bài viết: ThuanBui.me

  • Tạo file ghost, bung file ghost TBI với terabyte siêu nhanh, hỗ trợ UEFI

    Nếu cảm thấy đã chán với Norton Ghost và Acronis TrueImage. Thì bạn có thể tạo file ghost, bung file ghost TBI với terabyte (TeraByte Image for Windows). Đây là phần mềm tạo ghost TBI và bung ghost TBI với tốc độ siêu nhanh, hỗ trợ ghost theo cả chuẩn UEFI và Legacy.

    TeraByte Image for Windows đã có sẵn trên Anhdv Boot và bạn có thể chạy nó ngay trên Windows.

    Ưu điểm khi tạo file ghost, bung file ghost TBI với terabyte

    Tạo ghost và bung ghost với TeraByte

    Terabyte đến với mình theo kiểu “tình yêu sét đánh”. Mình ấn tượng với Terabyte ngay lần đầu sử dụng nhờ tốc độ cực nhanh. Thêm nữa là dung lượng của Terabyte nhỏ đến khó tin với chỉ 1,2 Mb cho bản 64 bit.

    1. Tạo file ghost, bung file ghost TBI với terabyte theo cả 2 chuẩn UEFI – GPT lẫn Legacy – MBR
    2. Chạy trực tiếp trên Windows, Mini Windows (WinPE).
    3. Tạo file ghost TBI với tùy chọn sao lưu thay đổi dựa trên bản ghost cũ
    4. Tốc độ tạo ghost và bung ghost cực nhanh, file ghost TBI dung lượng nhỏ.
    5. Tính năng kiểm tra toàn vẹn file ghost
    6. Có lựa chọn bung ghost sang máy có phần cứng khác

    Đọc thêm

    Hướng dẫn cách tạo file ghost TBI với terabyte

    Chọn vào ô Backup và bấm Next để tạo file Ghost.

    Tạo file ghost với Terabyte

    Bạn có thể chọn Full để tạo file ghost mới. Chọn Changes Only để tạo file ghost dựa trên file ghost có sẵn. Còn Consolidate giúp gộp các bản sao lưu Change Only thành 1 file. Bạn chọn Full và bấm Next để tiếp tục.

    Tạo file ghost với Terabyte

    Thường nếu cài Windows đúng cách, bạn sẽ có 2 phân vùng cần sao lưu. Đó là phân vùng System (hoặc EFI) và phân vùng chứa Windows (C:). Riêng với Windows UEFI thì chọn thêm phân vùng MSR (16Mb). Chọn các phân vùng cần tạo file ghost và bấm Next.

    Tạo file Ghost siêu tốc với TeraByte

    Bước này quan trọng nhất là chọn mức nén. Bạn nên chọn Enhaced Size – E để tạo sự cân bằng về tốc độ và kích thước file ghost. Enhaced Size A/B/C sẽ cho mức nén cao hơn nhưng thời gian lâu hơn. Để ưu tiên tốc độ tạo file thì bạn chọn Enhaced speed A/B. Nhập password file ghost vào nếu muốn. Phần Desciption để viết ghi chú cho file ghost của bạn. Thiết lập xong bấm Next để tạo file ghost.

    Hướng dẫn cách bung file ghost TBI với Terabyte

    Trước khi bung ghost, bạn nên xóa hết các phân vùng Windows cũ đi. Vì đằng nào khi bung ghost thì các phân vùng đó cũng bị xóa. Nên xóa trước để tránh gây lỗi và tăng tốc độ bung ghost.

    Xóa phân vùng khi bung ghost với TeraByte

    Muốn xóa phân vùng nào thì chọn rồi nhấp chuột phải > Delete để xóa. Nên xóa các phân vùng cài Win cũ đi (gồm EFI (hoặc System), MSR (với Win EFI) và ổ C. Nếu máy tính vẫn vào được Win mà muốn ghost lại, chỉ cần xóa và bung mỗi ổ C là đủ.

    Chọn ô Restore để bung file ghost với Terabyte. Tiếp theo chọn Automatic để tự động quá trình bung file ghost. Nếu File TBI được tạo từ máy khác thì bạn cần chọn Manual.

    Bung file ghost với Terabyte 1

    Bạn dẫn đến nơi chứa file ghost đã tạo, bấm Next để tiếp tục.

    Bung file ghost với Terabyte 2

    Chọn phân vùng cần bung ghost và bấm Next. Bạn sẽ nhận được cảnh báo là tất cả dữ liệu của phân vùng chọn ghost lên sẽ mất. Chú ý rằng mặc định phần mềm sẽ chọn ổ đích là HD0. Nếu bạn có nhiều ổ cứng mà ổ đích không phải là HD0 thì bạn cần chọn No để hủy.

    Bung file ghost với Terabyte 3

    Bấm Yes để tiếp tục. Tiếp theo bạn chỉ cần bấm Start để bung ghost. Đợi đến khi quá trình bung ghost hoàn tất.

    Lỗi gặp phải khi tạo file ghost, bung file ghost TBI với terabyte

    Trong quá trình sử dụng TeraByte, nếu phân vùng ổ C mà không thay đổi so với khi tạo file ghost. Thì TeraByte tự động nhận diện và bung ghost rất nhanh. Còn nếu bạn đã thay đổi kích thước phân vùng ổ C thì trong quá trình bung ghost sẽ gặp một số lỗi sau.

    Tạo ghost và bung ghost với Terabyte lỗi

    Khi chọn tất cả các phân vùng để bung file ghost thì lỗi trên xuất hiện. Cách khắc phục là ghost lần lượt từng phân vùng: EFI trước, sau đó đến MSR (với Win UEFI) và cuối cùng là phân vùng C.

    Bung ghost UEFI phân vùng EFI

    Chọn phân vùng đầu tiên EFI (hoặc System với Legacy) để bung ghost trước.

    Chọn phân vùng ghi bung ghost với TeraByte

    Chọn phân vùng để bung ghost (phân vùng Win cũ sau khi xóa).

    Quay về Menu chính khi bung ghost với TeraByte

    Bung ghost xong phân vùng EFI để quay về chọn tiếp Restore để bung tiếp lần lượt các phân vùng MSR và ổ C.

    bung ghost phân vùng MSR với TeraByte

    Chọn phân vùng MSR Microsoft reseverved partition (chỉ với Win UEFI)

    Chọn phân vùng để bung ghost MSR

    Vẫn chọn phân vùng Free Space như trên > Next. Bung ghost phân vùng MSR xong thì chọn Menu để bung nốt ổ C.

    bung ghost ổ C với TeraByte

    Chọn Next

    chọn phân vùng để bung ghost ổ C

    Chọn phân vùng Free Space và kết thúc bung ghost. Ngoài ra, nếu gặp lỗi thông báo phải chọn cả ổ cứng như sau.

    Lỗi khi bung ghost với TeraByte

    Thì bạn cũng lần lượt bung từng phân vùng như trên. Chi tiết mời các bạn xem video hướng dẫn tạo file ghost, bung file ghost TBI với terabyte

    Hướng dẫn tạo file ghost TBI, bung file ghost TBI siêu tốc với phần mềm TeraByte

    4. Kết luận

    Như vậy mình đã hướng dẫn các bạn tạo file ghost, bung file ghost TBI với terabyte. Ưu điểm của TeraBytes là tốc độ nhanh và rất ổn định. Mình có so sánh với TrueImage ở mức thiết lập tương đương. Thì dung lượng file ghost của TeraByte và TrueImage lần lượt là 6,25 Gb và 6,26 Gb. Thời gian tạo file ghost của TeraByte nhanh hơn TrueImage khoảng 30s. Thời gian bung ghost của TeraByte là 5’49”, của TrueImage là 6’21”.


    Nguồn tham khảo: Anhdv Blog