🌐 Trỏ domain về hosting

By Better Wise

Bài trước bạn đã deploy được bản đầu tiên và có một URL tạm kiểu myapp.vercel.app. URL đó chạy tốt, nhưng không ai đi mua hàng ở một địa chỉ như vậy. Hôm nay bạn sẽ nối tên miền riêng của mình vào đúng cái hosting đó. Đây là bước mình từng làm sai và mất cả đêm vì gõ thiếu một dấu chấm.

Sau bài này, bạn sẽ:

  • Đọc được bảng DNS của hosting và biết bản ghi nào làm việc gì.
  • Chọn đúng một trong hai con đường: thêm bản ghi, hoặc đổi nameserver.
  • Trỏ cả example.com lẫn www.example.com về hosting.
  • Kiểm tra được domain đã lan truyền bằng dig và biết vì sao phải chờ.

DNS làm gì trong chuyện này

DNS là cuốn danh bạ của internet: nó dịch tên dễ đọc (example.com) thành địa chỉ máy chủ. Bạn không "gắn" domain vào hosting bằng cách nào khác ngoài việc sửa danh bạ đó.

Loại bản ghi Trỏ tới Dùng khi nào
A địa chỉ IPv4 domain gốc (apex) trỏ về hosting
AAAA địa chỉ IPv6 hosting yêu cầu, hoặc trỏ song song với A
CNAME một tên miền khác subdomain như www
TXT chuỗi văn bản xác minh sở hữu domain
MX mail server email của domain, đừng xóa nhầm

Hai khái niệm đi kèm:

  • Apex domain: chính example.com, không có tiền tố. Trong bảng DNS, nó thường được viết là @.
  • TTL: thời gian resolver cache bản ghi, tính bằng giây. TTL 3600 nghĩa là sau khi bạn sửa, các máy khác có thể vẫn thấy bản ghi cũ tới một giờ.

Important: Chuẩn DNS không cho phép đặt bản ghi CNAME ở apex domain. Nếu hosting đưa cho bạn một CNAME cho example.com, hãy hỏi lại hoặc dùng A/ALIAS.

Bài tập nhanh 1 (2 phút): Mở dashboard hosting của bạn, tìm mục Domains, ghi ra giấy đúng những bản ghi mà hosting yêu cầu (loại bản ghi, tên, giá trị). Chưa sửa gì cả, chỉ chép lại. Gợi ý: nếu hosting ghi "Add domain", bạn thường phải nhập domain trước thì nó mới hiện bảng bản ghi cần thêm.

Chọn một con đường, đừng đi cả hai

Có hai cách đưa domain về hosting, và đây là chỗ nhiều bạn làm rối:

Sign in to view the full content of this lesson. Sign in

  1. Giữ DNS ở nơi mua domain (registrar), thêm bản ghi. Bạn vào phần quản lý DNS của registrar, thêm A và CNAME theo hướng dẫn của hosting.
  2. Giao hẳn DNS cho hosting, đổi nameserver. Bạn trỏ nameserver về ns1.hosting.com, ns2.hosting.com, rồi khai báo bản ghi trong dashboard hosting.
flowchart TD
    Start["🚀 Có domain và app đã deploy"] --> Choice{"DNS đang quản ở đâu?"}
    Choice -->|"Ở registrar"| AddRec["📝 Thêm bản ghi A và CNAME theo hướng dẫn hosting"]
    Choice -->|"Giao cho hosting"| NS["🔁 Đổi nameserver sang hosting"]
    AddRec --> Wait["⏳ Chờ lan truyền theo TTL"]
    NS --> Wait
    Wait --> Check["🔍 Kiểm tra bằng dig"]
    Check --> Done["✅ Domain trỏ đúng hosting"]

Đổi nameserver và thêm bản ghi là hai con đường, chọn một. Nếu bạn đổi nameserver rồi vẫn ngồi thêm bản ghi ở registrar, các bản ghi đó sẽ không có tác dụng gì.

Warning: Đổi nameserver làm toàn bộ bản ghi cũ ở registrar ngừng hoạt động, gồm cả MX của email. Nếu domain đang dùng email công ty, hãy khai báo lại MX ở nameserver mới trước khi đổi.

Bài tập nhanh 2 (3 phút): Xác định bạn thuộc trường hợp nào. Trả lời hai câu: (a) Domain của bạn mua ở đâu, DNS đang quản ở đó hay ở đâu khác? (b) Hosting bạn chọn yêu cầu thêm bản ghi hay đổi nameserver? Nếu hosting cho phép cả hai, chọn cách ít bước hơn là thêm bản ghi.

Trỏ cả apex lẫn www

Người dùng sẽ gõ cả example.com và www.example.com. Bạn cần cả hai cùng về một nơi:

  • A record cho @ trỏ về IP của hosting.
  • CNAME cho www trỏ về domain chính (hoặc tên mà hosting chỉ định).
  • Chọn một bản làm canonical, ví dụ example.com, rồi để hosting redirect www về đó. Đừng để hai bản chạy song song vì sau này rất khó kiểm tra.

Kiểm tra lan truyền: đừng đoán, hãy đo

Trước khi đổi bản ghi, hạ TTL xuống 300 giây và chờ khoảng 24 giờ. Như vậy khi bạn sửa, bản ghi mới lan nhanh hơn nhiều. Đây là mẹo nhỏ nhưng tiết kiệm rất nhiều thời gian gỡ lỗi.

Sau khi sửa, kiểm tra bằng terminal:

dig example.com +short
dig www.example.com +short
dig example.com MX +short

Kết quả đầu tiên phải ra IP của hosting. Nếu vẫn ra IP cũ, đó là cache, không phải lỗi cấu hình. Bạn cũng có thể xem bản đồ lan truyền trên các trang kiểm tra DNS toàn cầu để so sánh nhiều nơi.

Thời gian lan truyền thực tế: thường vài phút, tối đa tới 48 giờ nếu TTL cao.

Bản ghi _____ dùng để trỏ domain gốc về địa chỉ IPv4 của hosting. Bản ghi _____ trỏ một tên miền về một tên miền khác, thường dùng cho www. _____ quyết định thời gian resolver cache bản ghi, nên hạ xuống 300 giây trước khi đổi. Lệnh _____ giúp kiểm tra bản ghi DNS đã trỏ đúng chưa. Nếu đổi _____ sang hosting, mọi bản ghi cũ ở registrar sẽ ngừng hoạt động.

Bài tập nhanh 3 (5 phút): Chạy dig cho domain của bạn và ghi lại kết quả vào một file dns-check.txt. Sau đó sửa bản ghi theo hướng dẫn của hosting, chờ 5 phút, chạy lại và so sánh. Nếu kết quả chưa đổi, hạ TTL, chờ thêm, và kiểm tra lại giá trị bạn đã nhập có đúng từng ký tự không.

Những lỗi làm mình thức tới 2 giờ sáng

  • Gõ example.com. với dấu chấm ở cuối trong ô CNAME. Một số nhà cung cấp coi đó là tên tuyệt đối, số khác thì không. Sao chép nguyên văn từ hướng dẫn của hosting.
  • Quên rằng @ là apex. Điền www.example.com vào ô @ sẽ tạo ra www.example.com.example.com.
  • Xóa bản ghi MX trong lúc dọn dẹp bảng DNS, rồi mất email một ngày sau mới phát hiện.
  • Đổi nameserver trong khi vẫn chờ bản ghi cũ lan truyền, nên không biết lỗi nằm ở đâu.
  • Không kiểm tra www, chỉ kiểm tra apex, rồi khách gõ www và thấy trang lỗi.

Quy tắc của mình: hạ TTL trước, chọn một con đường, kiểm tra bằng dig sau mỗi lần sửa, và không sửa quá một thứ trong cùng lúc.

Chốt lại và bước tiếp theo

  • DNS là danh bạ; bạn trỏ domain bằng bản ghi, không phải bằng nút bấm trong hosting.
  • A cho apex, CNAME cho www, @ nghĩa là domain gốc.
  • Chọn một trong hai: thêm bản ghi, hoặc đổi nameserver.
  • Hạ TTL trước khi đổi và kiểm tra bằng dig thay vì đoán.

Domain đã trỏ đúng thì bước tiếp theo là đảm bảo nó chạy trên https://. Bài sau chúng ta bật HTTPS, kiểm tra chứng chỉ và xử lý trường hợp chứng chỉ chưa cấp xong.

Front: Bản ghi A trỏ domain tới đâu? Back: Địa chỉ IPv4 của server hoặc hosting.

Front: Bản ghi CNAME dùng để làm gì? Back: Trỏ một tên miền tới một tên miền khác (alias), thường dùng cho www.

Front: Có được đặt CNAME ở apex domain không? Back: Không, chuẩn DNS không cho phép; dùng A, AAAA hoặc ALIAS.

Front: TTL là gì? Back: Thời gian resolver cache bản ghi DNS, tính bằng giây.

Front: Nên làm gì với TTL trước khi đổi bản ghi? Back: Hạ xuống thấp (khoảng 300 giây) và chờ khoảng 24 giờ trước khi đổi.

Front: Hai cách đưa domain về hosting? Back: Thêm bản ghi tại DNS provider hiện tại, hoặc đổi nameserver sang hosting.

Front: Đổi nameserver thì bản ghi cũ ở registrar ra sao? Back: Ngừng có hiệu lực; phải khai báo lại toàn bộ ở nameserver mới, gồm cả MX.

Front: Ký hiệu @ trong bảng DNS nghĩa là gì? Back: Chính domain gốc (apex), ví dụ example.com.

Front: Lệnh nào kiểm tra bản ghi DNS đã trỏ đúng? Back: dig (hoặc nslookup), ví dụ dig example.com +short.

Front: Lan truyền DNS mất bao lâu? Back: Thường vài phút, tối đa khoảng 48 giờ tùy TTL.

Front: Bản ghi MX dùng cho việc gì? Back: Định tuyến email của domain; xóa nhầm sẽ làm mất email.

Front: Trỏ cả apex lẫn www thì làm thế nào? Back: A cho apex, CNAME cho www, và chọn một bản canonical để redirect.