Nội dung bài viết
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ệ.
- Tham khảo tại: WIKIPEDIA
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:
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:
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
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ên, Nickname, Email 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.