Nginx là gì? Cái nhìn tổng quan về phần mềm Nginx

Rất nhiều “ông trùm” trong lĩnh vực công nghệ như Facebook, Google, Microsoft, Adobe,… đều sử dụng Nginx. Vậy Nginx là gì mà lại được ưu ái lựa chọn đến vậy? Những thông chia sẻ dưới đây sẽ giúp bạn có cái nhìn tổng quan nhất về phần mềm này? 

nginx là gì
What is Nginx?

Nginx là gì?

Nginx là một web server (máy chủ) mã nguồn mở mạnh mẽ, hoạt động theo kiến trúc không đồng bộ, hướng sự. Điều này giúp Nginx mở rộng tính năng, tăng tốc độ và đáng tin cậy hơn. Ban đầu, Nginx được xây dựng để phục vụ cho web HTTP. Tuy nhiên, hiện nay chúng được phát triển và áp dụng vào HTTP load balancing, Reverse proxy và nhiều giao thức truyền email như: POP3, IMAP4, SMTP. 

Mã nguồn này được phát triển vào năm 2002 bởi Igor Sysoev và được công bố đầu tiên vào năm 2004. Đến tháng 7/2011, Nginx Inc được thành lập có trụ sở ở San Francisco (California, USA). Nhờ khả năng hoạt động mạnh mẽ và xử lý hàng nghìn kết nối cùng lúc nên Nginx được rất nhiều website có traffic lớn sử dụng như: Google, Adobe, Facebook, Netflix, WordPress, Apple,…

Bài viết tham khảo: Viral là gì? Những điều cần biết xung quanh liên quan đến “viral”

Cách thức vận hành của Nginx như thế nào?

Trước khi tìm hiểu về cách thức hoạt động của Nginx, chúng ta cùng tìm hiểu xem một web server sẽ hoạt động như thế nào. Khi người dùng gửi yêu cầu mở một website, trình duyệt của bạn sẽ liên lạc đếm server chứa website đó. Server sẽ thực hiện tìm kiếm file theo yêu cầu rồi gửi về cho trình duyệt. Thông thường, một web server truyền thống sẽ tạo ra một thread (luồng) cho mỗi request (yêu cầu). 

Nhưng Nginx lại không hoạt động như vậy. Nó vận hành theo kiến trúc không đồng bộ, hướng sự kiện. Kiến trúc này được hiểu là các threads tương đồng nhau sẽ được quản lý trong một tiến trình. Và mỗi tiến trình hoạt động lại dựa vào các thực tế nhỏ hơn – gọi là Worker Connections. 

nginx là gì
Nginx hoạt động theo kiến trúc không đồng bộ, hướng sự kiện

Worker Process sẽ nhận truy vấn từ Worker Connections, sau đó sẽ gửi các truy vấn đó đến Process cha (Master Process). Tiếp đó, Process cha sẽ trả lại kết quả cho các yêu cầu đó. Nghe có vẻ đơn giản nhưng một Worker Process có thể xử lý được cùng lúc 1024 yêu cầu tương tự nhau. Do đó mà Nginx có khả năng xử lý được hàng nghìn yêu cầu mà không gặp bất kỳ rắc rối gì. Đó cũng chính là lý do giải thích vì sao Nginx được nhiều website có traffic cao sử dụng. 

Các tính năng của Nginx la gi?

Nginx bao gồm nhiều tính năng vượt trội như:

  • Có khả năng xử lý được hơn 10.000 kết nối trong cùng lúc với bộ nhớ thấp. 
  • Phục vụ tập tin tĩnh và lập ra các chỉ mục cho tập tin. 
  • Sử dụng bộ nhớ đệm cache để tăng tốc proxy ngược, có khả năng chịu lỗi và cân bằng tải đơn giản. 
  • Hỗ trợ tăng tốc với các bộ nhớ đệm của UWSGI, FASTCGI, SCGI và máy chủ memcached. 
  • Cấu hình linh hoạt, có khả năng lưu lại nhật ký truy vấn. 
  • Dùng nén gzip tự động để tăng tốc độ nạp. 
  • Hỗ trợ mã hóa giao thức TLS, SSL.
  • Chuyển hưởng của lỗi 3XX – 5XX
  • Hỗ trợ WebSockets
  • Hạn chế tỷ lệ đáp ứng truy vấn
  • Nhúng mã PERL,… 

So sánh Nginx và Apache

Nginx và Apache đều là hai mã nguồn mở được sử dụng phổ biến. Vậy giữa hai server này có những điểm giống và khác nhau như thế nào?

Giống nhau

  • Đều có khả năng chạy được trên nhiều hệ điều hành của hệ thống UNIX.
  • Có hệ thống Mailing và diễn đàn Stack Overflow hỗ trợ. 
  • Có khả năng bảo mật tốt cho mã nguồn. 
  • Nginx kết nối với PHP có khả năng xử lý đồng thời như Apache ghép nối với các Module PHP-FPM. 
  • Hai server có hiệu năng trên nội dung động tương tự nhau. 
  • Thời gian chạy trong môi trường PHP của hai server trên khá giống nhau. 
nginx là gì
So sánh Nginx và Apache

Sự khác nhau

Nginx Apache
Hệ điều hành hỗ trợ  Cũng chạy trên một số Unix hiện đại và hỗ trợ một số tính năng cho Windows. Tuy nhiên, hiệu suất hoạt động của Nginx trên windows không mạnh như Apache.   Chạy trên tất cả các loại hệ thống Unix-like và hỗ trợ đầy đủ cho Windows. 
Hỗ trợ người dùng Người dùng sẽ nhận được nhiều hỗ trợ từ công ty.  Thiếu sự hỗ trợ người dùng từ phía công ty (Apache Foundation)
Nội dung tĩnh – Có khả năng xử lý đến 1000 kết nối với nội dung tĩnh nhanh gấp 2.5 lần so với Apache. 

– Sử dụng ít bộ nhớ hơn. 

Xử lý cùng lúc ít kết nối và tốc độ không được nhanh như Nginx. 
Khả năng tương thích Vào năm 2016, Nginx mới bắt đầu hỗ trợ cho Dynamic Module. Có lợi thế hơn do Apache được cung cấp Dynamic Module từ rất lâu. 

Cách cài đặt Nginx trên Windows

Download Nginx theo đường link sau: http://nginx.org/en/download.html. 

Lời khuyên: Nên tải và sử dụng bản Stable sẽ tốt hơn. Trong bài viết này, mình tải bản 1.18.0.

web server

Bước 1: Sau khi tải thành công về máy, bạn giải nén nó ra sẽ được folder Nginx.

web server

Bước 2: Chạy file .exe để start Nginx. Bạn có thể kích chuột vào file Nginx.exe để start, nhưng không nên làm như vậy. Bạn nên mở command line trong folder chứa file Nginx.exe rồi chạy theo các lệnh sau:

Bước 3: Để xác minh xem đã cài đặt thành công hay chưa, bạn truy cập vào trình duyệt mặc định của mình rồi nhập “localhost”. Nếu hiển thị màn hình như dưới đây thì Nginx đã được cài đặt thành công và nó đang hoạt động.

web server

Bài viết tham khảo: Startup là gì? Những yếu tố nào giúp khởi nghiệp thành công?

Nginx đang là một trong những mã nguồn mở rất được ưa chuộng hiện nay bởi nó có tốc độ nhanh, khả năng xử lý tốt hàng nghìn kết nối cùng lúc. Mong rằng với những chia sẻ trên sẽ giúp bạn đọc hiểu rõ Nginx là gì và có cái nhìn tổng quan về web server này. Nếu bạn có bất kỳ góp ý cho bài viết hay thắc mắc, hãy để lại bình luận cho supperclean.vn biết nhé!

5/5 - (1 bình chọn)

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *