Kapybara
Published on

Hướng Dẫn Cài Đặt Nginx Trên Ubuntu Cho Người Mới Bắt Đầu

Authors
  • avatar
    Name
    Khoa (kapybara)
    Occupation
    Full-stack developer

1. Giới Thiệu Về Nginx

Nginx là gì?

Nginx là một web server mạnh mẽ, được thiết kế để xử lý hàng nghìn request đồng thời, với hiệu năng cao hơn nhiều so với Apache. Ngoài việc phục vụ website tĩnh, Nginx còn được sử dụng làm proxy ngược, cân bằng tải, và gateway API.

So sánh Nginx với Apache

  • Hiệu năng: Nginx tốt hơn trong xử lý nhiều request.
  • Tài nguyên: Nginx tiết kiệm RAM hơn.
  • Cấu hình: Apache có nhiều module hơn, nhưng Nginx đơn giản và hiệu quả.

Ưu điểm của Nginx

  • Hiệu năng cao, xử lý nhanh.
  • Hỗ trợ HTTP/2.
  • Dễ cài đặt và cấu hình.

2. Tại Sao Nên Chọn Nginx?

Phù hợp cho các loại website

  • Website tĩnh.
  • Website dynamic kết hợp Node.js, PHP.
  • Ứng dụng API.

Khả năng mở rộng

  • Proxy ngược: Chuyển request tới backend server.
  • Cân bằng tải: Phân phối request đều cho các server.

3. Chuẩn Bị Môi Trường

Cài đặt Ubuntu

  1. Tải ISO từ trang chủ Ubuntu.
  2. Tạo USB boot và cài đặt.
  3. Cấu hình mạng và đầy đủ các package cơ bản.

Cập nhật hệ thống

sudo apt update && sudo apt upgrade -y

4. Cài Đặt Nginx

Cài đặt Nginx

Sử dụng lệnh sau để cài đặt:

sudo apt install nginx -y

Kiểm tra trạng thái Nginx

sudo systemctl status nginx

Nếu Nginx đã cài đặt thành công, bạn sẽ nhìn thấy trạng thái "active (running)".

5. Cấu Hình Cơ Bản

Cấu trúc thư mục của Nginx

  • /etc/nginx/nginx.conf: File cấu hình chính.
  • /etc/nginx/sites-available/: Lưu các file cấu hình virtual host.
  • /var/www/html/: Thư mục web root mặc định.

Chỉnh sửa file cấu hình mặc định

Mở file:

sudo nano /etc/nginx/sites-available/default

Sửa để phục vụ website:

server {
    listen 80;
    server_name localhost;
    root /var/www/html;

    location / {
        index index.html;
    }
}

Reload Nginx:

sudo systemctl reload nginx

Tạo Server Block

Tạo file cấu hình mới:

sudo nano /etc/nginx/sites-available/mywebsite

Thêm các cấu hình:

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

    location / {
        index index.html;
        try_files $uri $uri/ =404;
    }
}

Kéo symbolic link tới sites-enabled:

sudo ln -s /etc/nginx/sites-available/mywebsite /etc/nginx/sites-enabled/

6. Truy Cập Nginx

Mở trình duyệt và nhập IP hoặc tên miền để truy cập website.

7. Tùy Chỉnh Cấu Hình

Virtual Host

Phục vụ nhiều website bằng cách tạo nhiều server block trong sites-available.

SSL

Cài Let’s Encrypt:

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

Caching

Thêm các header caching trong cấu hình:

location / {
    expires 1d;
    add_header Cache-Control "public, no-transform";
}

8. Tối Ưu Hóa Nginx

Worker Processes

Tối đa số worker processes:

worker_processes auto;

Kết nối

Tăng số lượng kết nối:

worker_connections 1024;

Gzip Compression

Kích hoạt gzip:

gzip on;
gzip_types text/plain application/json;

9. Các Lệnh Quản Lý Nginx

  • Khởi động:

    sudo systemctl start nginx
    
  • Dừng:

    sudo systemctl stop nginx
    
  • Khởi động lại:

    sudo systemctl restart nginx
    
  • Kiểm tra log:

    sudo tail -f /var/log/nginx/access.log
    sudo tail -f /var/log/nginx/error.log
    

10. Kết Luận

Tóm Tắt

Bài viết hướng dẫn từng bước cài đặt và cấu hình Nginx trên Ubuntu, nhấn mạnh những ưu điểm như hiệu năng cao và linh hoạt.

Lời Khuyên

Người mới bắt đầu nên thực hành theo các bước trong bài viết và tìm hiểu sâu hơn về các tùy chỉnh trong tài liệu chính thức của Nginx.