OffshoreVps
Bài hướng dẫn14 thg 10 20269 phút đọcBởi đội ngũ OffshoreVps

Cách lưu trữ website trên VPS với Nginx và HTTPS

Cài Nginx trên Ubuntu, tạo khối server, thêm chứng chỉ Let's Encrypt miễn phí và tăng tốc. Các lệnh sao chép để có website chạy trong 20 phút.

Shared hosting thì dễ, nhưng VPS mang lại cho bạn tốc độ, quyền root và không bị "hàng xóm ồn ào" ảnh hưởng. Hướng dẫn này đưa một máy chủ Ubuntu 24.04 hoặc 22.04 mới tinh lên thành website HTTPS hoạt động bằng Nginx, trong khoảng hai mươi phút. Mọi lệnh đều có thể sao chép nguyên văn.

Cửa sổ terminal trên VPS hiển thị các lệnh dùng để lưu trữ website bằng Nginx và HTTPS, bắt đầu bằng “sudo apt update”
Loại lệnh bạn sẽ chạy trên máy chủ của mình trong hướng dẫn này.

Bạn cần gì

1. Cài đặt Nginx

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

Mở địa chỉ IP của máy chủ trong trình duyệt. Bạn sẽ thấy trang chào mừng mặc định của Nginx. Nếu không, hãy kiểm tra xem tường lửa có cho phép cổng 80 và 443 hay không:

sudo ufw allow "Nginx Full"
sudo ufw status

2. Tạo thư mục cho website

sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com
echo "<h1>It works</h1>" > /var/www/example.com/html/index.html

Hãy thay example.com bằng tên miền của bạn ở mọi chỗ.

Các bước của hướng dẫn này theo thứ tự: 1. Bạn cần gì; 2. 1. Cài đặt Nginx; 3. 2. Tạo thư mục website; 4. 4. Thêm HTTPS miễn phí với Let's Encrypt; 5. 5. Làm cho nhanh hơn; 6. Các sự cố thường gặp
Các bước trong hướng dẫn này, theo thứ tự.

3. Thêm một server block

sudo nano /etc/nginx/sites-available/example.com
server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;
    root /var/www/example.com/html;
    index index.html;

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

Kích hoạt nó, kiểm tra cấu hình rồi tải lại:

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

4. Thêm HTTPS miễn phí với Let's Encrypt

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

Certbot sẽ sửa server block của bạn, chuyển hướng HTTP sang HTTPS và cài một timer để tự động gia hạn chứng chỉ. Kiểm tra timer bằng systemctl list-timers | grep certbot.

5. Làm cho nhanh hơn

Bật nén và bộ nhớ đệm của trình duyệt cho các tệp tĩnh. Thêm đoạn này vào bên trong khối server:

gzip on;
gzip_types text/css application/javascript application/json image/svg+xml;

location ~* \.(css|js|png|jpg|jpeg|webp|svg|woff2)$ {
    expires 30d;
    add_header Cache-Control "public";
}

Sau đó hãy tải lại Nginx. Với các website động như WordPress, hãy cài PHP-FPM và chuyển các yêu cầu .php cho nó, hoặc đặt một plugin cache phía trước.

Các sự cố thường gặp

  • 403 Forbidden: Nginx không đọc được thư mục. Hãy kiểm tra quyền sở hữu và đảm bảo mọi thư mục cha đều có quyền thực thi (chmod o+x).
  • Certbot báo lỗi: tên miền chưa trỏ về máy chủ, hoặc cổng 80 đang bị chặn.
  • Vẫn hiện trang mặc định: hãy xóa /etc/nginx/sites-enabled/default rồi tải lại.