Nginx là một trong những máy chủ web phổ biến và mạnh mẽ, được sử dụng rộng rãi nhờ khả năng xử lý nhiều yêu cầu một cách hiệu quả. Cài đặt Nginx trên Ubuntu không quá phức tạp nhưng đòi hỏi người dùng phải nắm rõ các bước cơ bản. Trong bài viết này, chúng tôi sẽ hướng dẫn chi tiết từng bước từ cài đặt, cấu hình đến tối ưu hiệu suất Nginx trên hệ điều hành Ubuntu. Dù bạn là người mới hay đã có kinh nghiệm, bài viết này sẽ giúp bạn xây dựng một máy chủ web hoàn chỉnh, sẵn sàng cho mọi dự án.

1. Cập nhật hệ thống

Trước khi cài đặt Nginx, hãy đảm bảo rằng hệ thống của bạn đã được cập nhật lên phiên bản mới nhất.

Mở terminal và chạy các lệnh sau:

sudo apt update
sudo apt upgrade

2. Cài đặt Nginx

Cài đặt Nginx bằng cách sử dụng lệnh apt:

sudo apt install nginx

3. Kiểm tra trạng thái của Nginx

Sau khi cài đặt, Nginx sẽ tự động khởi động. Bạn có thể kiểm tra trạng thái của Nginx bằng lệnh:

sudo systemctl status nginx

Nếu Nginx đang chạy, bạn sẽ thấy dòng trạng thái với chữ “active (running)”.

4. Mở cổng tường lửa (Firewall)

Nếu tường lửa (UFW) của bạn đang bật, bạn cần cho phép lưu lượng HTTP và HTTPS:

sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'Nginx HTTPS'

Xác nhận rằng các quy tắc đã được thêm:

sudo ufw status

5. Kiểm tra máy chủ web

Mở trình duyệt và truy cập vào địa chỉ IP của server hoặc tên miền (nếu đã được cấu hình DNS). Ví dụ:

http://your_server_ip

Nếu Nginx đã được cài đặt thành công, bạn sẽ thấy trang mặc định của Nginx với thông báo “Welcome to Nginx!”.

6. Cấu hình Nginx

  • Thư mục cấu hình chính của Nginx: /etc/nginx/
  • Tệp cấu hình chính: /etc/nginx/nginx.conf
  • Thư mục chứa cấu hình cho các site:
    • Sites Available: /etc/nginx/sites-available/ – chứa cấu hình của các site.
    • Sites Enabled: /etc/nginx/sites-enabled/ – chứa các liên kết (symlinks) tới các file cấu hình site đã được kích hoạt.

7. Tạo và kích hoạt một Virtual Host

Tạo một file cấu hình mới trong sites-available:

sudo nano /etc/nginx/sites-available/example.com

Trong file này, bạn có thể cấu hình server block:

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

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

Tạo thư mục gốc cho website:

sudo mkdir -p /var/www/example.com
Tạo một trang index.html để kiểm tra:
sudo nano /var/www/example.com/index.html
Thêm nội dung đơn giản:
<html>
    <head>
        <title>Welcome to example.com!</title>
    </head>
    <body>
        <h1>Success! The example.com server block is working!</h1>
    </body>
</html>

Kích hoạt site bằng cách tạo symlink trong sites-enabled:

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

Kiểm tra cấu hình của Nginx để đảm bảo không có lỗi cú pháp:

sudo nginx -t

Reload Nginx để áp dụng các thay đổi:

sudo systemctl reload nginx

8. Kiểm tra và hoàn tất

Mở trình duyệt và truy cập vào tên miền hoặc địa chỉ IP đã cấu hình. Nếu mọi thứ được cài đặt đúng, bạn sẽ thấy trang “Success!” mà bạn đã tạo ở bước trên.

9. Bảo mật thêm với HTTPS

Nếu bạn muốn cài đặt SSL cho site, bạn có thể sử dụng Let’s Encrypt:

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

Theo các bước hướng dẫn của Certbot để hoàn thành việc cài đặt SSL.

Kết luận

Qua bài viết này, bạn đã nắm được toàn bộ quy trình cài đặt và cấu hình máy chủ web Nginx trên Ubuntu từ A đến Z. Từ việc cài đặt Nginx, cấu hình các file quan trọng, đến việc bảo mật và tối ưu hiệu suất, bạn đã có một cái nhìn tổng quan và thực hành cơ bản để xây dựng và quản lý máy chủ của mình. Việc tiếp theo là thường xuyên kiểm tra, cập nhật và điều chỉnh hệ thống để đảm bảo tính ổn định và an toàn. Chúc bạn thành công với hệ thống web của mình, sẵn sàng phục vụ các dự án sắp tới!