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
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:
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
docker-compose up -d
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ên, Nickname, Email và Password
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.