Hướng dẫn deploy EzyPlatform lên máy chủ VPS Ubuntu và trỏ tên miền từ A-Z

Thái Duy Khang

Thái Duy Khang

Đăng ngày: 09/03/2026
Trang chủ EzyPlatform

Nhắc đến việc xây dựng Game Server hay hệ thống doanh nghiệp bằng Java, EzyPlatform đang ngày càng khẳng định vị thế là một framework “Make in Vietnam” linh hoạt và ưu việt. Hoàn thiện xong sản phẩm trên môi trường local đã là một thành quả lớn, nhưng chặng đường đưa dự án đó thành production lại đặt ra vô số thách thức

Làm thế nào để ứng dụng thực sự “Go-Live” ? Cần thiết lập Reverse Proxy với Nginx ra sao? Bảo mật luồng dữ liệu bằng HTTPS thế nào, và quan trọng nhất là làm sao để duy trì sự ổn định của hệ thống 24/7 ?

Trong hướng dẫn này, EZ Tech sẽ hướng dẫn chi tiết toàn bộ quy trình triển khai EzyPlatform lên máy chủ Ubuntu, giúp bạn xây dựng một hạ tầng hoàn chỉnh và chuyên nghiệp nhất

Bước 1: Chuẩn bị tên miền và máy chủ

Để website có thể truy cập được từ internet, chúng ta cần 2 thứ: Tên miền (Domain) và Máy chủ (VPS/Server)

1.1. Mua tên miền

Mua tên miền rất đơn giản tại các nhà cung cấp như Tino host, Mắt Bão, Nhân Hòa:

  • Truy cập trang chủ bán tên miền
  • Nhập tên miền bạn muốn mua (ví dụ: giuchomeo.com) vào ô tìm kiếm
  • Thanh toán và truy cập trang quản trị tên miền để chuẩn bị trỏ IP

1.2. Thuê máy chủ (VPS)

  • Hệ điều hành khuyên dùng: Ubuntu 20.04 LTS hoặc 22.04 LTS
  • Cấu hình đề xuất: 2 Core CPU, 4GB RAM

Bạn có thể tham khảo thuê VPS chất lượng cao, giá tốt tại VPS vSAN ESA của EZ Tech chỉ từ 100,000 đ/tháng

1.3. Trỏ tên miền về IP máy chủ (Cấu hình DNS)

Sau khi có VPS, bạn sẽ được cấp một IP Public (ví dụ: 102.06.10.91). Vào trang quản lý tên miền (trang quản lý IP tên miền của Nhân Hòa là zonedns.vn) và tạo 2 bản ghi:

  • Record 1: Tên (Host): @ | Loại (Type): A | Giá trị: 102.06.10.91
  • Record 2: Tên (Host): admin | Loại (Type): A | Giá trị: 102.06.10.91 (Dành cho trang quản trị Admin)

Bước 2: Truy cập và thiết lập máy chủ VPS

2.1. SSH vào máy chủ

Mở Terminal/PowerShell và gõ:

Bash
ssh root@102.06.10.91

Nhập mật khẩu VPS của bạn để truy cập

2.2. Cài đặt SSH Public Key (Khuyên dùng)

Để không phải nhập mật khẩu rườm rà, hãy thêm SSH Key:

Bash
mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys

Dán Public Key của bạn vào, lưu lại (Ctrl+O, Enter) và thoát (Ctrl+X).

2.3. Thiết lập Timezone và Tường lửa (UFW)

Chỉnh múi giờ về Việt Nam:

Bash
sudo timedatectl set-timezone Asia/Ho_Chi_Minh

Cài đặt tường lửa để bảo mật máy chủ:

Bash
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

Mở port cho EzyPlatform (nếu dùng socket/websocket):

Bash
sudo ufw allow 3005
sudo ufw allow 2208
sudo ufw allow 2812
sudo ufw allow 2611/udp
sudo ufw enable

Bước 3: Cài đặt và Bảo mật Cơ sở dữ liệu (MySQL)

EzyPlatform cần Database để lưu trữ dữ liệu.

Bash
sudo apt update
sudo apt install mysql-server
sudo systemctl start mysql.service

Bảo mật MySQL (Quan trọng):

Chạy lệnh sau để thiết lập mức độ bảo mật cơ bản (xóa user ẩn danh, vô hiệu hóa remote root login, xóa test database):

Bash
sudo mysql_secure_installation

Cứ nhấn Y (Yes) cho các tùy chọn bảo mật được đề xuất.

Tạo Database và User:

Truy cập MySQL:

Bash
sudo mysql

Chạy các lệnh sau:

SQL
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<mật_khẩu_root_mới>';
CREATE SCHEMA `new_schema` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'ezyuser'@'localhost' IDENTIFIED BY 'mat_khau_cua_ban';
GRANT ALL PRIVILEGES ON new_schema.* TO 'ezyuser'@'localhost';
FLUSH PRIVILEGES;
exit;

Bước 4: Cài đặt Môi trường Java (JDK 8)

Bash
sudo apt update
sudo apt install openjdk-8-jre-headless

Cấu hình biến môi trường JAVA_HOME:

Bash
vi ~/.bash_profile

Nhấn i để insert, dán dòng này vào:

Bash
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64

Nhấn Esc, gõ :wq và Enter để lưu. Sau đó chạy:

Bash
source ~/.bash_profile

Bước 5: Cài đặt Nginx làm Reverse Proxy

Nginx sẽ nhận request từ port 80/443 và đẩy về port 8080 (Web) hoặc 9090 (Admin).

Bash
sudo apt install nginx
sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/sites-available/default

Tạo cấu hình cho Site Public:

Bash
sudo nano /etc/nginx/sites-enabled/giuchomeo.com

Dán cấu hình sau: (lưu ý đổi lại tên miền của bạn)

Nginx
server {
    server_name giuchomeo.com;

    location / {
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:8080;
        client_max_body_size 50M;
    }
}

Tạo cấu hình cho Site Admin: (lưu ý đổi lại tên miền của bạn)

Bash
sudo nano /etc/nginx/sites-enabled/admin.giuchomeo.com

Dán cấu hình sau: (lưu ý đổi lại tên miền của bạn)

Nginx
server {
    server_name admin.giuchomeo.com;

    location / {
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:9090;
        client_max_body_size 100M;
    }
}

Kiểm tra cấu hình và khởi động lại Nginx:

Bash
sudo nginx -t
sudo systemctl reload nginx

Bước 6: Cài đặt SSL với Let’s Encrypt (Certbot)

Bảo mật website với HTTPS là bắt buộc:

Bash
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d giuchomeo.com -d admin.giuchomeo.com

Làm theo hướng dẫn trên màn hình để chuyển hướng toàn bộ traffic sang HTTPS.

Bước 7: Cài đặt, Cấu hình và Tạo Systemd Service cho EzyPlatform

Tải và giải nén:

Bash
wget https://ezyplatform.com/api/v1/platforms/1.0.5/download -O ezyplatform.zip
unzip ezyplatform.zip
cd ezyplatform

Cấu hình kết nối Database:

Bash
nano settings/setup.properties

Sửa lại thông tin cài đặt cho khớp với Bước 3:

Nginx
datasource.jdbc_url=jdbc:mysql://localhost:3306/new_schema
datasource.driver_class_name=com.mysql.cj.jdbc.Driver
datasource.username=ezyuser
datasource.password=mat_khau_cua_ban
tables.create_manually=false

Lưu ý: Nếu bạn dùng Java 17 trở lên, hãy tạo thêm file vm-options.txt chứa --add-opens java.base/java.lang=ALL-UNNAMED trong các thư mục admin, socket, web của ezyplatform

Chạy thử để thiết lập UI:

Bash
bash cli.sh "console admin"

Khi log báo EZHTTP READY, truy cập https://admin.giuchomeo.com/setup-admin để thiết lập Admin. Sau đó vào Dashboard cấu hình lại URL và Port cho Web (8080) và Admin (9090). Nhấn Ctrl+C để tắt

Tạo Systemd Service:

Thay vì chạy thủ công, ta sẽ tạo service để Ubuntu tự động quản lý ứng dụng, tự động restart khi crash

Tạo file service cho Web:

Bash
sudo nano /etc/systemd/system/ezyplatform-web.service

Dán nội dung sau: (lưu ý thay đổi WorkingDirectory bằng đường dẫn thực tế chứa thư mục ezyplatform của bạn, ví dụ: /root/ezyplatform)

Nginx
[Unit]
Description=EzyPlatform Web Service
After=network.target mysql.service

[Service]
Type=forking
User=root
WorkingDirectory=/root/ezyplatform
ExecStart=/bin/bash cli.sh "start web"
ExecStop=/bin/bash cli.sh "stop web"
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Làm tương tự để tạo file /etc/systemd/system/ezyplatform-admin.service, chỉ cần thay chữ web thành admin trong phần Description, ExecStart ExecStop

Kích hoạt và khởi chạy:

Bash
sudo systemctl daemon-reload
sudo systemctl enable ezyplatform-web ezyplatform-admin
sudo systemctl start ezyplatform-admin
sudo systemctl start ezyplatform-web

Kiểm tra trạng thái: sudo systemctl status ezyplatform-web

Vậy là hoàn tất các bước đưa EzyFlatform lên VPS Ubuntu chuẩn production và chạy cực kỳ ổn định. Giờ bạn có thể truy cập trang web chính thức tại https://giuchomeo.com

Nếu có bất kỳ thắc mắc nào hoặc cần hỗ trợ, bạn hãy liên hệ với EZ Tech để được giải đáp nhanh nhất:

Đánh giá bài viết này

Tác giả

Thái Duy Khang
Thái Duy Khang Thiết kế & lập trình tại EZ TECH
Xin chào! Tôi là Thái Duy Khang, Senior Designer chuyên về UX/UI, với gần 10 năm kinh nghiệm trong lĩnh vực thiết kế đồ họa và hơn 7 năm tập trung vào thiết kế trải nghiệm người dùng cũng như giao diện web. Ngoài thiết kế, tôi còn có nền tảng vững chắc về lập trình Front-end (HTML, CSS, JavaScript) và WordPress, giúp tôi dễ dàng phối hợp giữa tư duy sáng tạo và khả năng triển khai thực tế. Hiện tại, tôi đang đảm nhiệm vai trò Thiết kế & Lập trình tại công ty công nghệ EZ (EZ TECH), nơi tôi tham gia vào việc xây dựng giao diện, tối ưu trải nghiệm người dùng và phát triển các sản phẩm web hoàn chỉnh.
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận