Tạo subdomain trên VPS là một cách hiệu quả để mở rộng website và quản lý các dịch vụ riêng biệt như blog, landing page hoặc hệ thống ứng dụng con. Theo kinh nghiệm của mình khi triển khai thực tế, việc tách subdomain ngay từ đầu sẽ giúp hệ thống dễ quản lý hơn và thuận tiện khi mở rộng sau này. Trong bài viết này, mình sẽ hướng dẫn bạn 2 cách tạo subdomain trên VPS chi tiết, dễ thực hiện, phù hợp cả với người mới bắt đầu.
Những điểm chính
- Tại sao cần tạo subdomain trên VPS: Giúp bạn tổ chức nội dung một cách khoa học (ví dụ: blog.yourdomain.com), tách biệt môi trường phát triển và thử nghiệm, và hỗ trợ SEO bằng cách tạo ra các trang chuyên biệt.
- Tạo subdomain trên VPS với cPanel: Đây là phương pháp đơn giản và nhanh chóng nhất, chỉ cần đăng nhập vào cPanel, tìm mục Subdomains, và điền thông tin cần thiết.
- Tạo subdomain trên VPS thủ công bằng Nginx: Dành cho người quản trị VPS không có control panel, đòi hỏi kiến thức về dòng lệnh. Quy trình bao gồm việc tạo thư mục, tạo file cấu hình Virtual Host, kích hoạt và reload Nginx.
- Các bước cần làm sau khi tạo subdomain: Bước quan trọng nhất là cấu hình Bản ghi DNS loại A (A Record) cho subdomain tại trang quản trị tên miền, trỏ nó về địa chỉ IP của VPS.
- Kiểm tra và khắc phục sự cố: Sau khi tạo, cần kiểm tra subdomain có hoạt động hay không và khắc phục các sự cố thường gặp như sai IP trong bản ghi A, firewall chặn cổng, hoặc lỗi cấu hình Nginx.
- Giải đáp các thắc mắc thường gặp khi tạo subdomain trên VPS.
Tại sao cần tạo subdomain trên VPS?
Việc tận dụng subdomain trên VPS mang lại nhiều lợi ích chiến lược, giúp tối ưu hóa việc quản lý, phát triển và mở rộng các dự án trực tuyến của bạn:
- Tổ chức nội dung: Subdomain cho phép bạn phân chia rõ ràng các khu vực chức năng trên cùng một tên miền chính như
blog.tenmien.com,shop.tenmien.com,forum.tenmien.com, giúp người dùng dễ dàng điều hướng và tăng trải nghiệm trên các phần khác nhau của website. - Tách biệt môi trường: Tạo môi trường thử nghiệm hoặc phát triển trên các subdomain như
dev.duan.commà không ảnh hưởng đến website chính đang hoạt động. - Chạy các ứng dụng khác nhau: Bạn có thể lưu trữ các ứng dụng hoặc nền tảng công nghệ khác nhau trên cùng VPS. Ví dụ, trang chính của bạn có thể chạy bằng WordPress, trong khi
app.tenmien.comchạy một ứng dụng viết bằng Python hoặc NodeJS. - Tiết kiệm chi phí: Sử dụng subdomain rẻ và hiệu quả hơn nhiều so với việc phải mua và quản lý nhiều tên miền khác nhau cho mỗi dịch vụ bạn muốn cung cấp.

Hướng dẫn tạo subdomain trên VPS với cPanel
Đây là cách đơn giản và nhanh nhất, phù hợp với những ai đang sử dụng VPS đã được cài sẵn cPanel – một trong những control panel phổ biến và dễ dùng nhất hiện nay.
Bước 1: Đăng nhập vào cPanel
Truy cập vào tài khoản cPanel thông qua đường dẫn dạng: yourdomain.com:2083, sau đó đăng nhập bằng thông tin được cấp.
Bước 2: Truy cập mục Domains
Tại giao diện chính của cPanel, bạn tìm đến nhóm Domains và nhấp vào mục Domains để bắt đầu tạo subdomain.

Bước 3: Nhập thông tin subdomain
Tại đây, bạn cần điền các thông tin cơ bản:
- Subdomain: Tên subdomain muốn tạo (ví dụ: shop, blog, dev,…).
- Domain: Tên miền chính mà subdomain sẽ gắn vào.
- Document Root: Thư mục chứa mã nguồn của subdomain (cPanel thường tự tạo sẵn, bạn có thể chỉnh lại nếu cần).
Sau khi hoàn tất, nhấn Submit để tạo subdomain.

Hướng dẫn tạo subdomain trên VPS Ubuntu bằng Nginx
Phương pháp này phù hợp với những người quản lý VPS không sử dụng control panel, yêu cầu có quyền truy cập SSH và kiến thức cơ bản về dòng lệnh. Theo kinh nghiệm của mình, cách làm này tuy phức tạp hơn nhưng lại linh hoạt và kiểm soát tốt hơn so với việc dùng cPanel, đặc biệt khi bạn cần tùy chỉnh sâu hệ thống.
Điều kiện cần
- VPS chạy hệ điều hành Ubuntu.
- Đã cài đặt web server Nginx.
- Tên miền chính đã trỏ Bản ghi A về địa chỉ IP của VPS.
Các bước thực hiện
Bước 1: Cài đặt Nginx (Nếu chưa có)
Trước tiên, bạn chạy các lệnh sau để cài đặt Nginx trên VPS:
sudo apt update
sudo apt install nginxSau khi cài đặt, bạn khởi động và kiểm tra trạng thái của Nginx bằng các lệnh:
sudo systemctl start nginx
sudo systemctl status nginxBước 2: Tạo thư mục cho Subdomain (Document Root)
Bạn chạy lệnh sau để tạo thư mục chứa nội dung của subdomain:
bash
sudo mkdir -p /var/www/blog.yourdomain.com/htmlSau đó, bạn phân quyền sở hữu và quyền truy cập cho thư mục:
bash
sudo chown -R $USER:$USER /var/www/blog.yourdomain.com/html
sudo chmod -R 755 /var/www/blog.yourdomain.comBước 3: Tạo file cấu hình Virtual Host (Server Block) cho Subdomain
Bạn tạo một file cấu hình mới cho subdomain trong thư mục sites-available của Nginx.
sudo nano /etc/nginx/sites-available/blog.yourdomain.com.confSau đó bạn dán nội dung cấu hình sau vào file, đây là một cấu hình cơ bản nhất:
server {
listen 80;
listen [::]:80;
root /var/www/blog.yourdomain.com/html; # Thư mục chứa code của subdomain
index index.html index.htm;
server_name blog.yourdomain.com; # Tên subdomain cần cấu hình
location / {
try_files $uri $uri/ =404;
}Chỉ thị quan trọng nhất ở đây là server_name, giúp Nginx biết phải xử lý yêu cầu cho blog.yourdomain.com bằng file cấu hình này.
Bước 4: Kích hoạt Server Block bằng Symbolic Link
Tiếp theo, bạn tạo một liên kết tượng trưng từ sites-available sang sites-enabled để Nginx đọc được file cấu hình mới.
bash
sudo ln -s /etc/nginx/sites-available/blog.yourdomain.com.conf /etc/nginx/sites-enabled/Bước 5: Kiểm tra cú pháp cấu hình Nginx
Đây là bước không bao giờ được bỏ qua. Trước khi reload Nginx, bạn chạy lệnh sudo nginx -t. Nếu kết quả trả về syntax is ok và test is successful thì bạn mới có thể yên tâm.
sudo nginx -tBước 6: Reload/Restart Nginx
Cuối cùng, bạn áp dụng các thay đổi trên bằng cách tải lại Nginx. Dùng reload sẽ tốt hơn restart vì lệnh này không ngắt các kết nối hiện tại.
bash
sudo systemctl reload nginxCác bước cần làm sau khi tạo subdomain
Dù bạn tạo subdomain bằng cách nào, bước cuối cùng và quan trọng nhất là cấu hình DNS.
Trỏ bản ghi DNS A Record cho subdomain
Đây là bước bắt buộc để subdomain hoạt động, giúp trình duyệt biết máy chủ nào đang chứa website của bạn.
- Đăng nhập vào trang quản trị DNS của nhà cung cấp tên miền (Vietnix, Cloudflare, Namecheap, Mắt Bão,…).
- Tìm khu vực quản lý bản ghi DNS và chọn Thêm bản ghi mới.
- Tạo một A Record mới với các thông tin sau:
- Loại (Type):
A - Tên (Name/Host): Nhập tên subdomain (Ví dụ:
blog.website.com). - Giá trị (Value/Address): Nhập địa chỉ IP của VPS.
- TTL (Time To Live): Có thể để giá trị mặc định.
- Loại (Type):

Kiểm tra subdomain hoạt động
Sau khi tạo bản ghi A, đừng vội vàng kiểm tra ngay. DNS cần thời gian để cập nhật, có thể mất từ vài phút đến vài giờ.
Từ kinh nghiệm của mình, thay vì liên tục F5 trình duyệt, mình thường dùng trang whatsmydns.net. Chỉ cần nhập subdomain của bạn (ví dụ blog.yourdomain.com), chọn record A và xem các máy chủ DNS trên thế giới đã cập nhật đúng địa chỉ IP VPS chưa. Khi thấy nhiều dấu tích xanh, đó là lúc bạn có thể kiểm tra trên trình duyệt.
Cài đặt chứng chỉ SSL (HTTPS) cho subdomain
Sau khi subdomain đã hoạt động ổn định, bạn nên cài đặt chứng chỉ SSL để kích hoạt HTTPS. Đây là bước quan trọng giúp mã hóa dữ liệu, nâng cao độ tin cậy của website và hỗ trợ tốt hơn cho SEO.
Việc triển khai SSL không quá phức tạp và có thể thực hiện theo 2 cách phổ biến:
- Với cPanel: Nếu VPS của bạn sử dụng cPanel, thường sẽ được tích hợp sẵn tính năng AutoSSL. Hệ thống sẽ tự động cài đặt và gia hạn chứng chỉ SSL miễn phí cho subdomain mà bạn không cần thao tác thủ công.
- Với CLI (Nginx): Bạn có thể sử dụng dịch vụ SSL miễn phí từ Let’s Encrypt kết hợp với công cụ Certbot. Chỉ cần chạy lệnh:
sudo certbot --nginx -d blog.tenmiencuaban.com. Certbot sẽ tự động cấu hình SSL và kích hoạt HTTPS cho subdomain.
Lưu ý khi tạo subdomain và khắc phục sự cố thường gặp
Nếu subdomain không hoạt động, bạn có thể kiểm tra lần lượt các nguyên nhân phổ biến dưới đây:
- Sai IP: Kiểm tra lại địa chỉ IP trong Bản ghi A. Một con số sai cũng đủ làm mọi thứ thất bại.
- Firewall chặn cổng: Đảm bảo Firewall trên VPS (ví dụ:
ufw) đã cho phép traffic qua cổng 80 (HTTP) và 443 (HTTPS). Dùng lệnhsudo ufw statusđể kiểm tra. - Lỗi cấu hình Nginx: Chạy lại
sudo nginx -t. Nếu có lỗi, lệnh sẽ chỉ rõ dòng và file gây ra vấn đề. Đừng quên xem log lỗi tại/var/log/nginx/error.log. - Quyền truy cập thư mục: Lỗi
403 Forbiddenthường do Nginx không có quyền đọc thư mụcDocument Root. Hãy kiểm tra lại bằng lệnhchownvàchmod. - Gợi ý bước tiếp theo: Sau khi subdomain hoạt động, việc đầu tiên bạn nên làm là cài đặt chứng chỉ SSL miễn phí từ Let’s Encrypt để kích hoạt HTTPS. Đây là tiêu chuẩn bảo mật bắt buộc hiện nay.
Theo kinh nghiệm của mình, phần lớn lỗi khi tạo subdomain thường đến từ sai cấu hình Nginx hoặc DNS chưa cập nhật kịp, vì vậy bạn nên kiểm tra hai yếu tố này đầu tiên để tiết kiệm thời gian xử lý.

Câu hỏi thường gặp
Số lượng subdomain tôi có thể tạo trên VPS là bao nhiêu?
Thường không giới hạn bởi nhà cung cấp VPS hoặc tên miền. Giới hạn thực tế phụ thuộc vào tài nguyên VPS của bạn và khả năng xử lý của Web Server.
Tôi có thể tạo subdomain cho tên miền miễn phí không?
Điều này phụ thuộc vào nhà cung cấp tên miền miễn phí đó. Một số nhà cung cấp tên miền miễn phí cho phép tạo subdomain, một số khác không.
Việc tạo subdomain có ảnh hưởng đến website chính chạy trên tên miền gốc không?
Về mặt kỹ thuật, subdomain là một địa chỉ độc lập, không ảnh hưởng trực tiếp đến website chính. Tuy nhiên, nếu subdomain tiêu thụ quá nhiều tài nguyên VPS thì có thể ảnh hưởng đến hiệu suất chung.
Tôi có cần mua SSL riêng cho từng subdomain không?
Không nhất thiết. Bạn có thể sử dụng chứng chỉ SSL Wildcard để bảo mật tên miền chính và tất cả các subdomain chỉ với một chứng chỉ duy nhất. Hoặc bạn có thể sử dụng SSL miễn phí như Let’s Encrypt, thường hỗ trợ bảo mật nhiều subdomain trên cùng một chứng chỉ.
Nếu tôi sử dụng control panel khác ngoài cPanel, cách tạo subdomain có tương tự không?
Câu trả lời là có, các control panel khác cũng có giao diện đồ họa cho phép tạo subdomain một cách tương tự, chỉ khác về bố cục và tên gọi của các mục.
Tóm lại, tạo subdomain trên VPS là cách hiệu quả để tổ chức nội dung, tách biệt môi trường và triển khai các dịch vụ chuyên biệt, mang lại nhiều lợi ích cho dự án trực tuyến. Quy trình thực hiện có thể đơn giản với control panel như cPanel hoặc phức tạp hơn khi cấu hình thủ công với Nginx. Việc hiểu rõ các bước cấu hình DNS và những lưu ý quan trọng sẽ giúp bạn tạo subdomain thành công và đảm bảo chúng hoạt động ổn định.




