Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Muốn website của bạn chạy trên máy chủ thật thay vì máy cá nhân? Nginx là máy chủ web phổ biến, nhẹ và nhanh. Bài này hướng dẫn bạn cài Nginx trên Ubuntu, cấu hình cho một website tĩnh, bật tường lửa cơ bản và cài chứng chỉ HTTPS miễn phí.
Bạn cần một VPS chạy Ubuntu (bản LTS), một tài khoản có quyền sudo và tốt nhất là một tên miền trỏ về địa chỉ IP của VPS bằng bản ghi A. Kết nối vào máy chủ qua SSH:
ssh ten_nguoi_dung@dia_chi_ipLưu ý bảo mật căn bản: dùng tài khoản thường kèm sudo thay vì đăng nhập root, ưu tiên khóa SSH thay vì mật khẩu và luôn cập nhật hệ thống.
sudo apt update
sudo apt upgrade -y
sudo apt install nginx -y
sudo systemctl status nginxKhi trạng thái hiện active (running), mở địa chỉ IP của VPS trong trình duyệt, bạn sẽ thấy trang chào mặc định của Nginx. Nếu không vào được, nguyên nhân thường là tường lửa của VPS hoặc nhà cung cấp chưa mở cổng 80.
Hãy cho phép SSH trước khi bật tường lửa, kẻo tự khóa mình ngoài máy chủ:
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw statusHồ sơ Nginx Full mở cả cổng 80 (HTTP) và 443 (HTTPS).
sudo mkdir -p /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/example.com
echo '<h1>Xin chào từ Nginx</h1>' > /var/www/example.com/html/index.htmlThay example.com bằng tên miền của bạn. Đặt mỗi website vào thư mục riêng giúp quản lý nhiều trang trên cùng một máy chủ.
Server block tương tự "virtual host" của Apache. Tạo file cấu hình:
sudo nano /etc/nginx/sites-available/example.comNội dung:
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 bằng cách tạo liên kết, kiểm tra cú pháp rồi nạp lại:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginxLuôn chạy nginx -t trước khi nạp lại, vì cấu hình sai có thể làm Nginx không khởi động được. Nếu muốn bỏ trang mặc định, xóa liên kết default trong sites-enabled.
Certbot giúp xin và tự gia hạn chứng chỉ miễn phí. Điều kiện: tên miền đã trỏ đúng về VPS.
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.comLàm theo hướng dẫn, chọn chuyển hướng HTTP sang HTTPS khi được hỏi. Certbot tự sửa file cấu hình và thiết lập gia hạn tự động. Kiểm tra bằng lệnh thử:
sudo certbot renew --dry-runsudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/nginx/access.logCác lỗi hay gặp:
root.Với ứng dụng Node.js hoặc Python chạy ở cổng nội bộ như 3000, đổi phần location thành:
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}Nginx nhận yêu cầu từ ngoài, chuyển cho ứng dụng và trả kết quả về, đồng thời đảm nhận HTTPS và file tĩnh.
Bạn đã đi từ máy chủ trống đến website có tên miền và HTTPS. Các bước cốt lõi là cài đặt, tường lửa, server block, kiểm tra cú pháp và chứng chỉ. Hãy tập thói quen sao lưu cấu hình và đọc log khi có lỗi.
Để học sâu hơn về triển khai và vận hành hệ thống, bạn có thể xem các khóa học DevOps tại codebem.com.
Nguyễn Đình Cường
0 comment