Skip to content
VDS · Bắt đầu

Bắt đầu nhanh: một trang web trong 15 phút

Từ máy sạch đến trang web nginx hoạt động với chứng chỉ HTTPS: cài đặt, thư mục trang web, tên miền, tường lửa, và kiểm tra.

Cập nhật 23 tháng 8, 2026

Kịch bản: một bản cài Debian hoặc Ubuntu mới, tên miền riêng của bạn, và mục tiêu là xem được trang của bạn qua HTTPS. Mọi lệnh đều chạy với quyền root qua SSH.

1. Cài nginx

apt update && apt install -y nginx
systemctl enable --now nginx

Mở http://your-address trong trình duyệt — bạn sẽ thấy trang chào mừng. Nếu không thấy, hãy kiểm tra tường lửa (bước 3).

Trên AlmaLinux, dùng dnf thay cho apt; xem AlmaLinux.

2. Trỏ tên miền

Trong bảng điều khiển của nhà đăng ký tên miền, thêm bản ghi A với địa chỉ của máy từ tab “Overview”:

example.com.      A     203.0.113.10
www.example.com.  A     203.0.113.10

Kiểm tra xem tên miền đã phân giải đúng địa chỉ chưa:

apt install -y dnsutils
dig +short example.com

Bản ghi cần từ một phút đến vài giờ để cập nhật. Khi dig vẫn trả về địa chỉ cũ, bạn sẽ không thể cấp chứng chỉ.

3. Mở các cổng

apt install -y ufw
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Đầu tiên allow OpenSSH, rồi mới enable. Làm ngược thứ tự sẽ cắt mất quyền truy cập của bạn, và bạn sẽ phải đăng nhập qua bảng điều khiển văn bản.

4. Tạo một site

mkdir -p /var/www/example.com
echo '<h1>Works</h1>' > /var/www/example.com/index.html
chown -R www-data:www-data /var/www/example.com

Cấu hình trong /etc/nginx/sites-available/example.com:

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

Bật và áp dụng:

ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx

nginx -t là bắt buộc: lệnh này kiểm tra cấu hình trước khi khởi động lại. Nếu kết quả không kết thúc bằng syntax is ok và test is successful, đừng khởi động lại dịch vụ — hãy sửa lỗi trước.

5. Cấp chứng chỉ

apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com

Certbot sẽ hỏi email, thêm khối listen 443 ssl, và thiết lập chuyển hướng HTTP. Việc gia hạn được thiết lập tự động; bạn có thể kiểm tra như sau:

certbot renew --dry-run

Những lỗi thường gặp nhất

Triệu chứngNguyên nhân
Trình duyệt không mở được siteCổng 80 hoặc 443 bị đóng trong ufw
Certbot: Timeout during connectTên miền chưa trỏ đến máy, hoặc cổng 80 bị đóng
502 Bad Gatewaynginx đang proxy tới một ứng dụng không chạy — kiểm tra systemctl status cho dịch vụ của bạn
403 ForbiddenKhông có quyền trên thư mục, hoặc thiếu index.html
Hiện trang mặc định của nginx thay vì trang của bạn/etc/nginx/sites-enabled/default chưa được xóa

Log cho bất kỳ vấn đề nào ở trên:

tail -n 50 /var/log/nginx/error.log
journalctl -u nginx -n 50 --no-pager

Tiếp theo, bạn nên xử lý bảo mật cơ bản bằng danh sách kiểm tra giờ đầu tiên nếu bạn chưa làm qua.