Cài đặt Nginx Proxy Manager với Docker Compose trên Ubuntu 22.04

Giới thiệu

Reverse Proxy là gì?

Reverse proxy là một loại proxy server trung gian giữa một máy chủ và các client gửi tới các yêu cầu. Nó kiểm soát yêu cầu của các client, nếu hợp lệ, sẽ luân chuyển đến các server thích ứng. Trái ngược với một forward proxy, là một trung gian cho phép các client liên hệ với nó liên lạc với bất kỳ máy chủ ảo nào, reverse proxy là một trung gian cho các máy chủ liên hệ với nó được liên lạc bởi bất kỳ client nào. Ưu điểm lớn nhất của việc sử dụng reverse proxy là khả năng quản lý tập trung. Nó giúp kiếm soát mọi request do clieny gửi lên các server được bảo vệ.

Với Reverse Proxy thì hiện nay có nhiều giải pháp khác nhau hỗ trợ vấn đề này như thông qua: Apache, Nginx, HAProxy,..vv , nhưng có vẻ như các giải pháp kia khá phức tạp và hơi khó sử dụng với người mới bắt đầu. Nhưng không sao, ở bài viết này mình sẽ hướng dẫn các bạn cách cài đặt Reverse Proxy với một giải pháp khác đơn giản hơn, có hỗ trợ giao diện Web UI để người dùng dễ dàng thao tác, đó chính là Nginx Proxy Manager. Tuy nhiên, để cài đặt Nginx Proxy Manager , các bạn cần phải thỏa các điều kiện bên dưới.

Điều kiện máy chủ cần đáp ứng:

  1. Cài đặt Docker trên Ubuntu
  2. Cài đặt Docker Compose trên Ubuntu 22.04.

Nếu đã đáp ứng đủ các điều kiện trên, bây giờ chúng ta sẽ tiến hành cài đặt và cấu hình Nginx Proxy Manager.

Hướng dẫn cài đặt

Bước 1: Cài đặt Nginx Proxy Manager

  • Đầu tiên các bạn cần tạo thư mục chứa dự án và tạo file docker-compose.yml cho Nginx Proxy Manager với các lệnh lần lượt như sau:
Đàm Trung Kiên
mkdir /home/nginxproxymanager
cd /home/nginxproxymanager
nano docker-compose.yml
    

Nhập nội dung bên dưới vào và lưu lại

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    environment:
      DB_MYSQL_HOST: "db"
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "npm"
      DB_MYSQL_PASSWORD: "npm"
      DB_MYSQL_NAME: "npm"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
  db:
    image: 'jc21/mariadb-aria:latest'
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql
  • Kích hoạt Nginx Proxy Manager
Đàm Trung Kiên
docker-compose up -d
    

Kích hoạt thành công bạn sẽ thấy kết quả như hình dưới.

Bước 2: Truy cập WebUI

  • Truy cập vào giao diện Web UI của Nginx Proxy Manager theo liên kết
http://IP-Address:81
  • Sử dụng thông tin mặc định bên dưới để đăng nhập
Email:    admin@example.com
Password: changeme

Đăng nhập thành công bạn sẽ thấy giao diện với popup điền thông tin TênNicknameEmail và Password như hình.

Và sau khi điền xong các thông tin cần thiết, giao diện WebUI sẽ hiển thị đầy đủ như sau.

Ở trên là bài hướng dẫn chi tiết 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 mà các bạn có thể tham khảo. Với Nginx Proxy Manager thì chúng ta còn có thể làm được khá nhiều thử hay ho, nhưng mình sẽ giới thiệu đến các bạn các tính năng đó ở các bài viết sau nhé. Chúc các bạn cài đặt thành công.

Leave a Reply

Your email address will not be published. Required fields are marked *