Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

13. Cài đặt Nginx và kiểm tra hoạt động

ICT

1. Mục tiêu của bài này

Ở bước này, chúng ta chỉ tập trung cài đặt Nginx và kiểm tra nó hoạt động đúng.

Chưa làm:

  • Virtual host

  • PHP

  • SSL

  • Tối ưu hiệu năng

Nguyên tắc:

Cài đặt từng lớp một, xác nhận ổn định rồi mới đi tiếp.


2. Cập nhật hệ thống trước khi cài đặt

Trước khi cài bất kỳ service nào, luôn cập nhật danh sách package:

 
sudo apt update
sudo apt upgrade -y

Việc này giúp:

  • Tránh lỗi phụ thuộc

  • Đảm bảo vá bảo mật mới nhất


3. Cài đặt Nginx từ repository chính thức

3.1. Cài Nginx

sudo apt install nginx -y

Ubuntu sẽ cài:

  • Nginx

  • Các package phụ thuộc cần thiết


3.2. Kiểm tra trạng thái service

 
sudo systemctl status nginx

Trạng thái mong đợi:

  • active (running)

Nếu service không chạy:

  • Không tiếp tục các bước tiếp theo

  • Cần kiểm tra log ngay


4. Kiểm tra Nginx từ trình duyệt

4.1. Lấy IP server

 
ip a 

Hoặc:

hostname -I 
Kết quả mong đợi
root@ai:/var/lib/mysql# hostname -I 
192.168.1.3 192.168.3.197 172.17.0.1 2001:ee0:5579:a470:3eec:efff:fe3d:b9a8 
root@ai:/var/lib/mysql# 

4.2. Truy cập từ trình duyệt

Mở trình duyệt và truy cập:

http://IP_SERVER
 
Ví dụ với kết quả trên:
https://192.168.1.3
Đây là địa chỉ IP của máy chủ trong mạng nội bộ nhé, chưa phải truy cập từ bên ngoài đâu.
 

Nếu thấy trang:

“Welcome to nginx!”

→ Nginx đã hoạt động đúng ở mức cơ bản.

Lưu ý quan trọng tại bước này

Bạn chưa truy cập được bằng địa chỉ IP tĩnh nhà mạng đâu nhé. Cần cấu hình NAT trên model nữa.

Máy chủ mình có 2 card mạng, thêm IP 192.168.3.197 cũng trong 1 mạng nội bộ khác. Bạn lưu ý IP trong mạng mà có kết nối ra ngoài internet (người khác truy cập được vào máy chủ).

 


5. Kiểm tra firewall liên quan đến Nginx

5.1. Kiểm tra profile UFW của Nginx

 
sudo ufw app list

Bạn sẽ thấy:

  • Nginx HTTP

  • Nginx HTTPS

  • Nginx Full


5.2. Kiểm tra rule đang áp dụng

 
sudo ufw status

Đảm bảo:

  • Port 80 đang được allow

  • Hoặc đã allow Nginx Full

Nếu truy cập không được từ bên ngoài, nguyên nhân thường là firewall.


6. Kiểm tra cấu trúc file Nginx

Hiểu cấu trúc file trước khi chỉnh sửa là rất quan trọng.

6.1. Thư mục chính

 
/etc/nginx/

Các thư mục quan trọng:

  • nginx.conf – file cấu hình chính

  • sites-available/ – nơi chứa cấu hình website

  • sites-enabled/ – nơi kích hoạt website

  • conf.d/ – cấu hình bổ sung


6.2. Nguyên tắc làm việc với cấu hình

  • Không chỉnh trực tiếp file mặc định nếu không cần

  • Mỗi website → một file cấu hình riêng

  • Chỉ enable site khi đã kiểm tra cú pháp


7. Kiểm tra cú pháp cấu hình Nginx

Trước khi reload hoặc restart Nginx:

 
sudo nginx -t

Kết quả mong đợi:

 
syntax is ok test is successful

Nguyên tắc:

Không reload Nginx nếu chưa test cấu hình.


8. Reload vs Restart – hiểu đúng để dùng đúng

  • Reload:

    sudo systemctl reload nginx
    • Áp dụng cấu hình mới

    • Không ngắt kết nối hiện tại

  • Restart:

    sudo systemctl restart nginx
    • Dừng và khởi động lại service

    • Có thể ngắt kết nối

Trong production:

Ưu tiên reload, hạn chế restart.


9. Kiểm tra log của Nginx

9.1. Log mặc định

  • Access log:

    /var/log/nginx/access.log 
  • Error log:

    /var/log/nginx/error.log 

Kiểm tra nhanh:

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

9.2. Ý nghĩa của log

  • Access log: ai truy cập, truy cập gì

  • Error log: lỗi cấu hình, lỗi xử lý request

Log là công cụ debug quan trọng nhất khi triển khai web server.


10. Những sai lầm phổ biến ở bước cài đặt Nginx

  • Vừa cài xong đã chỉnh cấu hình phức tạp

  • Không kiểm tra firewall

  • Không test cấu hình trước khi reload

  • Không xem log khi có lỗi

Những sai lầm này khiến:

Việc debug trở nên khó gấp nhiều lần.


11. Checklist sau khi cài Nginx

  •  Nginx cài thành công

  •  Service đang chạy

  •  Truy cập được qua IP

  •  Firewall cho phép port 80

  •  Hiểu cấu trúc file cơ bản

  •  Biết kiểm tra log


12. Bài tiếp theo

Trong Bài 14, chúng ta sẽ đi sâu vào cấu trúc cấu hình:

Cấu trúc thư mục và file cấu hình Nginx

Bài này sẽ giúp:

  • Không bị rối khi có nhiều website

  • Cấu hình có tổ chức

  • Chuẩn bị cho virtual host