Bạn đã mua tên miền, có VPS, mà trình duyệt vẫn báo "không thể truy cập trang web này". Mảnh ghép còn thiếu gần như luôn là hai bản ghi DNS và một web server thực sự trả lời ở đúng địa chỉ. Đây là toàn bộ hành trình, từ nhà đăng ký tên miền đến biểu tượng ổ khóa HTTPS hoạt động.
Trước khi bắt đầu: gói của bạn có nhận lưu lượng web không?
Khách truy cập kết nối tới cổng 80 và 443 trên máy chủ. Việc đó cần một gói có IP công khai riêng. Gói NAT chỉ chuyển tiếp cổng SSH cá nhân của bạn, nên không thể chạy website trên tên miền — bài viết IP riêng hay NAT của chúng tôi giải thích sự khác biệt. Một website nhỏ chạy tốt trên Nano-IP.
1. Tìm địa chỉ của máy chủ
Địa chỉ IPv4 và IPv6 nằm trên trang máy chủ trong bảng điều khiển. Trong ví dụ, chúng tôi dùng địa chỉ dành cho tài liệu:
- IPv4:
203.0.113.10 - IPv6:
2001:db8::10
2. Tạo bản ghi DNS
Đăng nhập vào nơi quản lý DNS của tên miền (thường là nhà đăng ký) và thêm:
| Loại | Tên | Giá trị | TTL |
|---|---|---|---|
| A | @ | 203.0.113.10 | 300 |
| AAAA | @ | 2001:db8::10 | 300 |
| CNAME | www | example.com. | 300 |
@ nghĩa là tên miền chính. TTL ngắn như 300 giây giúp sửa lỗi ít tốn kém; bạn có thể tăng lên 3600 khi mọi thứ đã chạy.
Nếu chưa muốn dùng IPv6, tạm bỏ qua bản ghi AAAA — xem cảnh báo ở bước 5.
3. Kiểm tra DNS có trả lời không
Đừng tin thông báo "đã lưu" của nhà đăng ký. Hãy hỏi thẳng DNS:
dig +short example.com A
dig +short example.com AAAA
dig +short www.example.com
dig +short example.com A @1.1.1.1
Dòng cuối hỏi một resolver công khai, gần với những gì khách truy cập thấy hơn. Nếu nhận lại IP của bạn, phần DNS đã xong.
4. Làm cho máy chủ trả lời
Cài nginx và mở cổng:
apt update && apt install -y nginx
ufw allow 80/tcp
ufw allow 443/tcp
Mở http://example.com — bạn sẽ thấy trang chào mừng của nginx. Giờ thêm HTTPS với chứng chỉ miễn phí:
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com
Certbot sửa cấu hình nginx, thiết lập chuyển hướng sang HTTPS và tự động gia hạn chứng chỉ. Với một ứng dụng thật đằng sau nginx, hãy làm theo hướng dẫn reverse proxy với HTTPS của chúng tôi.
5. Cái bẫy IPv6
Rất nhiều người vấp phải điều này. Bạn thêm bản ghi AAAA, nhưng nginx chỉ nghe trên IPv4. Khách dùng IPv6 (nhiều mạng di động) thử địa chỉ IPv6 trước và thất bại. Hãy đảm bảo khối server có cả hai dòng:
listen 80;
listen [::]:80;
Cấu hình nginx mặc định trên Ubuntu đã có sẵn [::], nhưng cấu hình tự viết thường bỏ sót. Kiểm tra từ một máy có IPv6:
curl -6 -I https://example.com
Các vấn đề thường gặp
- IP cũ vẫn hiện ra: resolver cục bộ của bạn đã lưu cache. Chờ hết TTL hoặc hỏi
@1.1.1.1như trên. - Certbot thất bại do timeout: cổng 80 bị chặn hoặc DNS chưa trỏ về đây. Kiểm tra lại
ufw statusvàdig. - Chạy được khi không có www, lỗi khi có www: chứng chỉ hoặc khối server không bao gồm
www. Chạy lại certbot với cả hai tên.
Về DNS ngược
Bản ghi A và AAAA đi từ tên sang IP. DNS ngược (PTR) đi theo chiều ngược lại, và được đặt trong bảng điều khiển thay vì ở nhà đăng ký. Bạn chỉ cần nó cho email hoặc khi một dịch vụ kiểm tra nó — hướng dẫn PTR của chúng tôi có giải thích.
Nếu đây là lần đầu bạn đưa website lên mạng, trang tình huống sử dụng cho website giúp chọn cấu hình, còn tài liệu mạng liệt kê các địa chỉ mà mỗi gói nhận được.
Bình luận
Chưa có bình luận nào. Hãy là người đầu tiên.