Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

19. Quản lý domain và DNS cho Web Server

ICT

1. Vì sao domain và DNS thường là nguồn gốc của rất nhiều lỗi?

Trong thực tế triển khai Web Server, rất nhiều sự cố có biểu hiện như:

  • Không truy cập được website

  • SSL không cấp được

  • Website lúc được lúc không

  • Redirect sai, loop không rõ nguyên nhân

Nhưng khi kiểm tra kỹ, nguyên nhân gốc lại nằm ở:

Domain và DNS được cấu hình thiếu nhất quán hoặc không được hiểu đúng.

DNS là lớp hạ tầng logic nằm giữa Internet và Web Server.
Nếu lớp này sai, các lớp phía trên gần như không thể hoạt động ổn định.


2. Vai trò của DNS trong kiến trúc Web Server

DNS có nhiệm vụ:

  • Chuyển đổi tên miền (domain) thành địa chỉ IP

  • Giúp trình duyệt biết cần kết nối tới server nào

Luồng truy cập cơ bản:

Nginx không xử lý DNS.
Nginx chỉ xử lý request sau khi DNS đã phân giải xong.


3. Các khái niệm DNS cần nắm trước khi cấu hình

3.1. Domain và subdomain

  • Domain chính: cntt.it

  • Subdomain: www.cntt.it, blog.cntt.it, staging.cntt.it

Trong quản lý Web Server:

Mỗi domain/subdomain được xem là một website độc lập.


3.2. Bản ghi DNS quan trọng

Các bản ghi thường dùng:

  • A record: trỏ domain → IPv4

  • AAAA record: trỏ domain → IPv6

  • CNAME: trỏ domain → domain khác

  • MX: dùng cho email (không liên quan web)

Trong phạm vi Web Server, trọng tâm là:

A và AAAA record


4. Quy trình quản lý domain cho Web Server production

4.1. Nguyên tắc chung

Trong loạt bài này, quản lý domain tuân theo các nguyên tắc:

  1. Domain phải trỏ trực tiếp về IP server

  2. Không dùng trung gian không cần thiết

  3. Tránh thay đổi DNS liên tục

  4. Ghi chép rõ ràng các bản ghi DNS


4.2. Trỏ domain về Web Server

Ví dụ trỏ domain cntt.it:

  • A record:

    cntt.it      → 203.xxx.xxx.xxx
  • Nếu có www:

    www.cntt.it  → 203.xxx.xxx.xxx

TTL (Time To Live):

  • Khuyến nghị: 300–600 giây khi mới triển khai

  • Sau khi ổn định: có thể tăng lên


5. Quản lý www và non-www

5.1. Chọn một chuẩn duy nhất

Cần quyết định:

  • Dùng cntt.it

  • Hay www.cntt.it

Nguyên tắc:

Chỉ chọn một dạng làm chuẩn, dạng còn lại redirect.


5.2. DNS cho www

Có hai cách:

Cách 1: A record

www.cntt.it → IP_SERVER

Cách 2: CNAME

www.cntt.it → cntt.it

Cả hai đều hợp lệ, nhưng cần:

  • Phù hợp với cấu hình Nginx

  • Nhất quán với SSL sau này


6. Quản lý nhiều domain trên cùng một server

Khi server có nhiều website:

  • Mỗi domain:

    • Có bản ghi DNS riêng

    • Có virtual host riêng

  • DNS không phân biệt server block

  • Nginx phân biệt website bằng server_name

DNS chỉ cần đảm bảo:

Tất cả domain trỏ đúng về IP server.


7. Kiểm tra DNS trước khi triển khai tiếp

7.1. Kiểm tra từ phía client

Trên máy local:

ping cntt.it

Hoặc:

nslookup cntt.it

Hoặc:

dig cntt.it

Xác nhận:

  • Domain trả về đúng IP server

  • Không bị trỏ nhầm sang IP cũ


7.2. Kiểm tra từ phía server

Trên server:

dig cntt.it

Điều này giúp:

  • Kiểm tra DNS toàn cầu

  • Phát hiện lỗi propagation


8. File /etc/hosts – chỉ dùng để test

Trong quá trình test:

  • Có thể dùng /etc/hosts trên máy local

  • Không dùng /etc/hosts trên server để “chữa cháy”

Nguyên tắc:

/etc/hosts không thay thế cho DNS trong production.


9. Những lỗi DNS phổ biến cần tránh

  • Trỏ domain về IP sai

  • Quên trỏ www hoặc non-www

  • TTL quá dài khi đang test

  • Trỏ domain về CDN / proxy nhưng không cấu hình phù hợp

  • Thay đổi DNS mà không ghi lại lịch sử

Những lỗi này thường dẫn đến:

Lỗi rất khó đoán, rất khó debug.


10. Checklist domain & DNS trước khi cài SSL

Trước khi sang bước SSL, cần đảm bảo:

  •  Domain trỏ đúng IP server

  •  www / non-www đã thống nhất

  •  DNS đã propagate (có hiệu lực)

  •  Truy cập HTTP hoạt động ổn định

  •  Không dùng hosts file để “giả lập”

Nếu checklist này chưa đạt, không nên triển khai SSL.


11. Bài tiếp theo

Trong Bài 20, chúng ta sẽ bắt đầu phần rất quan trọng:

Cài đặt SSL miễn phí với Let’s Encrypt (Certbot)

Bài này sẽ hướng dẫn:

  • Cấp chứng chỉ SSL đúng cách

  • Tránh lỗi thường gặp

  • Chuẩn bị cho HTTPS chuẩn production