Trang chủTin tứcNginx là gì? Hướng dẫn cài đặt và cấu hình Nginx chi tiết nhất
Nginx là gì? Hướng dẫn cài đặt và cấu hình Nginx chi tiết nhất

Nginx là gì? Cách cài đặt, các câu lệnh và cấu hình Nginx như thế nào? Sự khác biệt giữa Nginx và Apache ra sao? Chi tiết sẽ có trong bài viết ngay sau đây.

Nginx là một công cụ mạnh mẽ, linh hoạt có thể được sử dụng để cải thiện hiệu suất và bảo mật của bất kỳ máy chủ web nào. Vì vậy, đây là sự lựa chọn lý tưởng cho các trang Web có lưu lượng truy cập cao và phổ biến cho nhiều đối tượng người dùng. Chúng ta sẽ tìm hiểu chi tiết Nginx là gì cũng như cách cấu hình, cài đặt cũng như so sánh điểm khác biệt giữa Nginx với Apache trong bài viết dưới đây.

1. Nginx là gì? Mức độ phổ biến của Nginx?

Nginx là một máy chủ web và proxy Reverse được sử dụng rộng rãi trên toàn cầu. Trong thập kỷ qua, Nginx đã trở thành một trong những giải pháp phổ biến nhất cho việc xử lý các yêu cầu web và cân bằng tải.

Nginx là gì? cấu hình Nginx
Nginx là gì? hướng dẫn cấu hình Nginx

Dưới đây là một số lý do mà Nginx đã trở thành công cụ phổ biến:

  • Hiệu suất cao: Nginx được thiết kế để xử lý hàng ngàn yêu cầu đồng thời với tài nguyên thấp. Kiến trúc đơn luồng, bất đồng bộ của Nginx và khả năng xử lý sự kiện I/O (Input/Output) giúp nó có thể đạt hiệu suất cao và mở rộng tốt.
  • Khả năng cân bằng tải: Nginx hỗ trợ cân bằng tải giữa các máy chủ web để phân phối công việc và tránh quá tải cho từng máy chủ.
  • Reverse Proxy: Nginx có khả năng hoạt động như một Reverse Proxy, cho phép chuyển tiếp yêu cầu từ máy khách đến các máy chủ backend khác nhau.
  • Dễ cấu hình: Nginx có một cú pháp đơn giản và dễ hiểu, đồng thời cung cấp khả năng cấu hình linh hoạt.

Xem thêm: Web server là gì? Hiểu rõ về cơ chế hoạt động của web server

2. Ưu điểm khi sử dụng Nginx là gì?

Khi lựa chọn Nginx làm máy chủ web hoặc cân bằng tải, có một số ưu điểm quan trọng như:

  • Hiệu suất cao
  • Xử lý cân bằng tải
  • Khả năng mở rộng
  • Tiết kiệm tài nguyên
  • Tính linh hoạt và đa chức năng
  • Bảo mật
  • Cộng đồng và tài liệu phong phú
Ưu điểm khi sử dụng Nginx là gì?
Ưu điểm khi sử dụng Nginx là gì?

Với nhiều ưu điểm vượt trội, Nginx trở thành một lựa chọn phổ biến cho việc triển khai máy chủ web và cân bằng tải trong môi trường ứng dụng web hiện đại.

3. Hướng dẫn cài đặt Nginx 

Bài viết này sẽ hướng dẫn bạn cài đặt Nginx đối với Ubuntu Server 20.04

Bạn có thể kiểm tra phiên bản ubuntu của bạn bằng lệnh:

lsb_release -a

thanhquang@thanhquang:~$ lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description:    Ubuntu 20.04.6 LTS

Release:        20.04

Codename:       focal

Để cài đặt một gói Debian dựng sẵn, thứ duy nhất cần làm là đăng nhập vào tài khoản root và nhập lệnh sau:

apt update

apt install -y Nginx

Để kiểm tra bạn đã cài thành công Nginx hay chưa và dùng phiên bản nào ta thực hiện lệnh:

Nginx -v

root@thanhquang:~# Nginx -v

Nginx version: Nginx/1.18.0 (Ubuntu)

Chỉ một vài thao tác đơn giản như vậy là bạn đã có thể cài được Nginx về máy .Nhưng để sử dụng như thế nào thì vẫn còn là một vấn đề rất lớn mà bạn cần tìm hiểu tiếp theo đây.

4. Cấu trúc và cấu hình Nginx

Để có thể giúp bạn một phần trong việc làm quen và tìm hiểu với Nginx tôi sẽ tiến hành phân tích cấu trúc và cấu hình các file khi ta cài đặt Nginx.

Để xem được file cấu hình của Nginx thì ta cần di chuyển đến thư mục “/etc/Nginx” và thực hiện lệnh “tree”.

cd /etc/Nginx

tree

xem file cấu hình Nginx
xem file cấu hình Nginx

5. Các câu lệnh thao tác với Nginx

Dưới đây là một số câu lệnh giúp chúng ta thao tác tốt hơn với Nginx.

Chúng ta cần kiểm tra xem các file cấu hình của ta thêm vào có đúng hay không. Điều này rất quan trọng nhé vì nó giúp chúng ta phát hiện và khắc phục các lỗi cấu hình chưa đúng.

Nginx -t

Nếu đúng sẽ có kết quả.

root@thanhquang:/etc/Nginx# Nginx -t

Nginx: the configuration file /etc/Nginx/Nginx.conf syntax is ok

Nginx: configuration file /etc/Nginx/Nginx.conf test is successful

Để bật dịch vụ Nginx.

systemctl start Nginx

Để tự động bật Nginx khi khởi động lại máy.

systemctl enable Nginx

Để xem trạng thái của của Nginx.

systemctl status Nginx

Đây là kết quả khi Nginx đang bật
Đây là kết quả khi Nginx đang bật

6. So sánh Nginx và Apache

Có thể nói Nginx và Apache là hai Web Server phổ biến nhất hiện nay. Đầu tiên chúng ta cùng đánh giá một số điểm giống nhau giữa hai công cụ như:

  • Hỗ trợ nhiều hệ điều hành và nền tảng: Nginx và Apache có thể chạy trên nhiều hệ điều hành và nền tảng khác nhau như: Linux, Windows và nhiều hệ điều hành khác.
  • Hỗ trợ SSL/TLS: Cả Nginx và Apache đều hỗ trợ SSL/TLS để bảo vệ việc truyền tải dữ liệu qua Internet.
  • Thực hiện Reverse Proxy: Cả hai đều có khả năng hoạt động như một reverse proxy, giúp chuyển hướng yêu cầu từ người dùng đến các máy chủ ứng dụng hoặc dịch vụ khác một cách hiệu quả.
  • Khả năng phục vụ tĩnh và động: Nginx và Apache có khả năng phục vụ cả nội dung tĩnh (như HTML, CSS, và JavaScript) và nội dung động (như PHP, Python, và Ruby) cho các ứng dụng web.
  • Nginx và Apache đều có cộng đồng sử dụng lớn.
Sự khác biệt giữa Apache và Nginx là gì?
Sự khác biệt giữa Apache và Nginx là gì?

Bên cạnh những điểm tương đồng thì Nginx và Apache vẫn có những sự khác biệt rõ ràng.

Đặc điểm

Nginx

Apache

Kiến trúc

Cấu trúc sự kiện đơn luồng (single-threaded, event-driven).

Cấu trúc tiến trình nhiều luồng (multi-process, multi-threaded).

Hiệu suất

Tốt trong việc xử lý nhiều kết nối đồng thời với ít tài nguyên. Phù hợp cho ứng dụng tập trung vào hiệu suất cao.

Có thể có hiệu suất thấp hơn khi cần xử lý nhiều tiến trình và luồng.

Cấu hình

Dễ dàng cấu hình với tệp cấu hình tuyến tính. Tự động tải lại cấu hình khi có thay đổi.

Sử dụng tệp cấu hình chính và tệp .htaccess cho cấu hình thư mục con

Mô-đun và Phần mở rộng

Hỗ trợ mô-đun đơn giản và tích hợp sẵn, nhưng có thể yêu cầu biên dịch lại cho mô-đun thêm.

Hỗ trợ mô-đun và phần mở rộng phong phú và đa dạng, có sẵn thông qua thư viện, tuy nhiên, cần phải quản lý cẩn thận để tránh xung đột.

Thực hiện Reverse Proxy

Hiệu quả và linh hoạt trong việc thực hiện reverse proxy.

Có khả năng thực hiện reverse proxy nhưng có thể không hiệu quả bằng Nginx trong một số tình huống.

Cơ chế xử lý

Xử lý không đồng bộ, tối ưu cho I/O bound tasks như proxying, load balancing.

Xử lý đồng bộ, tối ưu cho CPU-bound tasks như xử lý PHP và CGI.

Hỗ trợ OS

Hỗ trợ tốt trên Linux và Unix-based systems. Có phiên bản cho Windows nhưng có thể không được coi là chính thức.

Hỗ trợ rộng rãi trên nhiều hệ điều hành, bao gồm Linux, Windows và Unix-based systems.

Độ tin cậy và Ổn định

Thường được xem là ổn định và ít bị sập trong tình huống tải cao.

Cũng ổn định nhưng có thể đòi hỏi quản lý tài nguyên tốt hơn trong tình huống tải cao.

Cộng đồng và Hỗ trợ

Cộng đồng lớn, tích cực và có nhiều tài liệu, nhưng có thể ít so với Apache.

Có cộng đồng lớn, lâu đời và có nhiều tài liệu, mô-đun và phần mở rộng.

Kết Luận

Trên đây là một số thông tin cơ bản về Nginx, một máy chủ web mạnh mẽ và linh hoạt.. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn Nginx là gì cũng như cách cài đặt, cấu hình và sự khác biệt so với Apache. Nếu trong quá trình cấu hình cài đặt, bạn gặp phải những vướng mắc hãy liên hệ với chúng tôi ngay để được tư vấn, hỗ trợ nhanh nhất nhé.

Tác giả:
author avatar
Mình là Huy, hiện mình đang là kỹ sư hệ thống tại SunCloud. Mình có nhiều năm kinh nghiệm, kiến thức chuyên môn về mạng, hệ thống, điện toán mây và an ninh bảo mật. Mình đã triển khai và vận hành rất nhiều dự án thực tế cho doanh nghiệp, cơ quan. Mình đã đạt được một số chứng chỉ quốc tế như CCNP, LPI, VCP, đồng thời mình vẫn đang tiếp tục học tập để trau dồi kiến thức mỗi ngày. Mình rất yêu thích công nghệ, đam mê chia sẻ những kiến thức, thông tin hữu ích cho mọi người.

Tin tức nổi bật