Tên miền tìm đến VPS như thế nào: Nhập môn DNS, HTTPS và Reverse Proxy
Hướng dẫn người mới về mối liên hệ giữa tên miền, bản ghi DNS (A/AAAA), cổng mạng, reverse proxy, chứng chỉ TLS và HTTPS để chuyển tiếp yêu cầu từ trình duyệt đến ứng dụng trên VPS.
Chạy curl http://127.0.0.1:3000 trên VPS và nhận được mã HTML chứng minh ứng dụng đang chạy tốt cục bộ. Tuy nhiên, để người dùng bên ngoài truy cập qua https://example.com, bạn cần xâu chuỗi tên miền, DNS, cổng mạng, Reverse Proxy và mã hóa HTTPS thành một chuỗi liền mạch.
Các khái niệm này thường xuất hiện cùng nhau nhưng đảm nhận những vai trò hoàn toàn riêng biệt.
1. Luồng đi hoàn chỉnh của một yêu cầu web
Người dùng nhập tên miền trên trình duyệt
↓ Truy vấn DNS
Nhận địa chỉ IP máy chủ
↓ Bắt tay TCP 443 + TLS
Kết nối đến Reverse Proxy trên VPS
↓ Chuyển tiếp nội bộ đến 127.0.0.1:3000
Ứng dụng backend trả về trang webPhân vai và so sánh thực tế:
| Thành phần | So sánh | Nhiệm vụ thực tế |
|---|---|---|
| Tên miền | Biển hiệu dễ nhớ | Cung cấp định danh thân thiện và bền vững cho website |
| DNS | Danh bạ điện thoại | Phân giải tên miền thành địa chỉ IP và các bản ghi |
| Địa chỉ IP | Địa chỉ tòa nhà | Định danh máy chủ hoặc giao diện mạng trên Internet |
| Cổng (Port) | Số phòng trong tòa nhà | Định tuyến kết nối đến đúng dịch vụ mạng đang chờ |
| Reverse Proxy | Quầy lễ tân tòa nhà | Nhận yêu cầu từ bên ngoài và phân phối cho ứng dụng bên trong |
| Chứng chỉ TLS | Thẻ căn cước xác thực | Cho phép client xác thực danh tính tên miền và mã hóa kết nối |
DNS không lưu trữ hay truyền tải trang web, và chứng chỉ TLS cũng không "trỏ" tên miền về máy chủ. Mỗi lớp cần được cấu hình và kiểm tra độc lập.
2. Các loại bản ghi DNS phổ biến
| Bản ghi | Mục đích chính | Lưu ý cho người mới |
|---|---|---|
A | Trỏ tên miền đến địa chỉ IPv4 | Cần cập nhật khi IP máy chủ thay đổi |
AAAA | Trỏ tên miền đến địa chỉ IPv6 | Không cấu hình nếu máy chủ chưa hỗ trợ IPv6 hoàn chỉnh |
CNAME | Tạo bí danh trỏ tên miền này sang tên miền khác | Thường không áp dụng được trực tiếp cho tên miền gốc (Zone Apex) |
TXT | Lưu trữ văn bản xác thực tên miền, cấu hình SPF | Không dán các giá trị xác thực không rõ nguồn gốc |
Ví dụ, muốn www.example.com trỏ về VPS có IPv4 công cộng, bạn thêm bản ghi A.
Thay đổi trên DNS không có hiệu lực tức thì trên toàn cầu. Các máy chủ DNS đệm và thiết bị người dùng sẽ lưu cache theo giá trị TTL (Time to Live). Khi chuẩn bị chuyển máy chủ, hãy giảm TTL trước vài ngày.
3. Vì sao Reverse Proxy lại cần thiết
Một VPS thường chạy nhiều dịch vụ cùng lúc:
blog.example.com → 127.0.0.1:3000
api.example.com → 127.0.0.1:4000Reverse Proxy (như Nginx, Caddy) lắng nghe cổng 80/443 công cộng và phân phối yêu cầu đến đúng ứng dụng nội bộ dựa trên tên miền được gọi (Host header). Nó đảm nhận việc giải mã TLS, ghi log truy cập, nén dữ liệu và giới hạn tần suất truy cập.
Nhờ đó, các ứng dụng backend không cần chạy quyền root để chiếm giữ các cổng thấp và dễ dàng phân lớp kiểm tra:
- Kiểm tra ứng dụng chạy tốt trên localhost trước;
- Kiểm tra cấu hình chuyển tiếp của Reverse Proxy;
- Cuối cùng kiểm tra phân giải DNS và truy cập HTTPS từ ngoài.
4. HTTPS thực sự bảo vệ điều gì
HTTPS là giao thức HTTP chạy trên kênh truyền TLS được mã hóa. Khi hoạt động bình thường, nó đảm bảo:
1. Xác thực: Trình duyệt xác nhận chứng chỉ khớp với đúng tên miền; 2. Bảo mật: Dữ liệu truyền đi được mã hóa, chống nghe lén; 3. Toàn vẹn: Phát hiện ngay lập tức nếu dữ liệu bị thay đổi trên đường truyền.
Các tổ chức cấp chứng chỉ như Let’s Encrypt tự động cấp phát và gia hạn chứng chỉ qua giao thức ACME. Các phương thức thử thách sở hữu tên miền:
HTTP-01: Kiểm tra qua việc đặt file trên web (yêu cầu cổng 80 công cộng mở);DNS-01: Kiểm tra qua bản ghi TXT trên DNS (không yêu cầu mở cổng 80 hay 443);TLS-ALPN-01: Kiểm tra qua bắt tay TLS đặc biệt trên cổng 443.
Các trang web thông thường chủ yếu sử dụng HTTP-01.
5. Quy trình triển khai web server chuẩn cho người mới
1. Khởi chạy ứng dụng trên VPS, đảm bảo chỉ lắng nghe trên localhost (127.0.0.1); 2. Kiểm tra phản hồi ứng dụng nội bộ bằng lệnh curl -I http://127.0.0.1:3000; 3. Cài đặt và cấu hình Reverse Proxy từ kho phần mềm chính thức; 4. Kiểm tra cú pháp cấu hình Reverse Proxy trước khi khởi động; 5. Thêm bản ghi DNS chính xác và kiểm tra phân giải qua DNS công cộng; 6. Mở cổng tường lửa cần thiết (phải mở cổng 80 khi dùng xác thực HTTP-01); 7. Dùng ACME client tin cậy để cấp chứng chỉ TLS; 8. Truy cập thử bằng HTTPS từ thiết bị mạng ngoài để kiểm tra chứng chỉ và nội dung; 9. Kiểm tra lịch chạy tự động gia hạn chứng chỉ.
6. Hướng dẫn gỡ lỗi theo từng tầng
Tên miền phân giải về IP máy chủ cũ
Kiểm tra bản ghi DNS có thẩm quyền, giá trị TTL và bộ nhớ cache cục bộ. Đừng cài lại web server khi yêu cầu chưa hề chạm tới VPS mới.
IPv4 vào được nhưng một số thiết bị không mở được trang
Kiểm tra xem có bản ghi AAAA bị sai không. Thiết bị hỗ trợ IPv6 sẽ ưu tiên IPv6; nếu cấu hình máy chủ chưa xong, kết nối sẽ bị timeout.
Reverse Proxy báo lỗi 502 Bad Gateway
Proxy nhận được yêu cầu nhưng không kết nối được tới backend. Kiểm tra tiến trình backend, địa chỉ bind, cổng và kết quả curl nội bộ.
Cấp phát chứng chỉ ACME thất bại
Xem log lỗi: HTTP-01 kiểm tra cổng 80, DNS-01 kiểm tra bản ghi TXT và quyền API, TLS-ALPN-01 kiểm tra cổng 443; đồng thời kiểm tra đồng bộ thời gian máy chủ (NTP).
HTTPS chạy tốt nhưng cổng backend cũng bị lộ ra ngoài
Kiểm tra xem ứng dụng có đang lắng nghe trên 0.0.0.0 và tường lửa có đang mở cổng đó không. Ứng dụng backend nên bind vào 127.0.0.1.
7. Tổng kết
Tên miền, DNS, HTTPS và Reverse Proxy là các mắt xích trong một chuỗi cung ứng: DNS chỉ đường đến IP, mạng chuyển gói tin đến cổng 443, TLS thiết lập kênh mã hóa và Reverse Proxy bàn giao yêu cầu cho ứng dụng xử lý.
Câu hỏi thường gặp (FAQ)
Không có tên miền, chỉ có địa chỉ IP có dùng HTTPS được không?
Có chứng chỉ cấp cho IP trong các tình huống doanh nghiệp đặc thù, nhưng trang web cá nhân luôn dùng chứng chỉ tên miền để tiện di dời máy chủ sau này.
Bật proxy CDN của Cloudflare thì chuỗi kết nối thay đổi ra sao?
Người dùng kết nối tới máy chủ biên của CDN trước, rồi CDN kết nối về VPS gốc của bạn. Xuất hiện thêm một lớp đệm về bộ nhớ cache, SSL và cấu hình tường lửa.
Chứng chỉ cấp xong có cần theo dõi nữa không?
Có. Chứng chỉ miễn phí ngắn hạn phụ thuộc vào cron job gia hạn tự động, cần theo dõi định kỳ để tránh hết hạn bất ngờ.
Tài liệu tham khảo
Share