NGINX là gì? NGINX là một trong các kiến thức cơ bản những người làm web nhất định phải nắm. Đây là phần mềm web server được rất nhiều người dùng. Phần mềm này ban đầu chỉ để phục vụ cho những web HTTP, nhưng đến nay nó đã được áp dụng làm reverse proxy, email proxy (IMAP, SMTP, POP3) và HTTP load balancer. Cùng Bloghainguyen.com khám phá nhiều hơn về phần mềm NGINX.
- Hướng dẫn các lệnh cơ bản trong Linux cần nắm rõ 2022
- Hướng dẫn cách sử dụng woocommerce đơn giản cho người mới
- Hướng dẫn cách tạo Robots.txt cho WordPress mới nhất
- Hướng dẫn cách thiết kế giao diện web bằng HTML 2022
- Hướng dẫn cài đặt WordPress chỉ với 5 bước sau đây
NGINX là gì?

NGINX là mã nguồn mở (open source) được phát triển để phục vụ cho nhu cầu các web, caching, reverse proxying, media streaming, load balancing, … NGINX được bắt đầu từ web server với thiết kế có hiệu suất ổn định. Ngoài chức năng như một máy chủ HTTP, NGINX còn phát huy công dụng của mình dưới dạng một máy chủ proxy cho email, đồng thời có thể cân bằng tải và proxy ngược cho những server như HTTP, UDP và TCP.
Cách hoạt động của NGINX web server

Trong quá trình tìm hiểu Nginx là gì, bạn phải hiểu được cách mà web server này hoạt động. Khi ai đó gửi yêu cầu để mở bất kỳ trang web nào, trình duyệt mà họ đang dùng sẽ liên hệ với server của trang web đó. Lúc này, server trang web sẽ tiến hành tìm kiếm tệp chứa thông tin được yêu cầu để gửi đến trình duyệt. Tình huống này thuộc yêu cầu cơ bản nhất để bạn có thể dễ hiểu.
Thông thường, những máy chủ web truyền thống sẽ tạo một luồng duy nhất cho các yêu cầu, nhưng Nginx lại hoạt động hoàn toàn khác. Nginx sẽ xây dựng hướng đến sự kiện không đồng bộ. Những luồng sẽ được quản lý dựa trên worker process, mỗi worker process có những đơn vị nhỏ hơn được gọi là worker connection. Đơn vị này sẽ nhận nhiệm vụ xử lý luồng yêu cầu. Cụ thể, worker connection cung cấp yêu cầu cho worker process, đồng thời gửi yêu cầu đến master process. Master process là đơn vị chịu trách nhiệm trả kết quả được yêu cầu.
Ưu điểm của worker connection là có thể xử lý lên đến 1024 yêu cầu tương tự nhau. Vì vậy, Nginx có thể giúp bạn xử lý hàng ngày yêu cầu. Nginx thích hợp với những trang web có các yêu cầu như cloud storage, e-commerce, search engines.
Một số tính năng của Nginx

Nginx có nhiều tính năng phục vụ nội dung HTTP động dựa trên FastCGI, máy chỉ ứng dụng WSGI, SCGI cho tập lệnh, mô-đun Phusion Passenger, thậm chí là có thể cân bằng việc tải phần mềm.
Những tính năng HTTP proxy và web server:
- Xử lý được trên 10.000 kết nối cùng lúc với dung lượng bộ nhớ 2.5MB.
- Tự động lập chỉ mục, xử lý các file index và static.
- Cân bằng tải.
- Có khả năng reverse proxy với bộ nhớ đệm.
- Tương thích với IPv6.
- TLS/SSL với OCSP và SNI dựa trên OpenSSL.
- Hỗ trợ gPRC phiên bản 1.13.10 (từ tháng 3 năm 2018).
- Hỗ trợ SCGI, uWSGI, FastCGI với bộ nhớ đệm.
- Máy chủ ảo dựa trên tên và IP
- Nâng cấp giao thức HTTP/1.1 và có hỗ trợ HTTP/2.
- WebSockets kể từ phiên bản 1.3.13, hoạt động như proxy ngược và thực hiện load balance cho các ứng dụng WebSocket.
- Chuyển hướng và viết lại URL.
Những tính năng email proxy:
- Hỗ trợ STARTTLS, STARTTLS.
- IMAP proxy, SMTP và POP3.
- Có thể yêu cầu xác thực bằng những tập lệnh hoặc bằng máy chủ HTTP.
Ngoài ra, Nginx còn có một số tính năng như nâng cấp cấu hình, thực thi mà không ảnh hưởng đến kết nối của máy khách. Hơn nữa, Nginx còn có thể kiến trúc dựa trên lõi và mô-đun, đồng thời hỗ trợ mô-đun cho bên thứ 3. Nếu sử dụng Nginx Plus, bạn còn có thể cân bằng tải nâng cao và theo dõi hiệu suất.
So sánh giữa Nginx và Apache server

Apache là một trong những đối thủ chính của Nginx, phần mềm này đã tồn tại khá lâu trên thị trường và được rất nhiều người sử dụng. Thông tin dưới đây sẽ cho bạn biết nên chọn loại phần mềm nào.
- Hệ điều hành hỗ trợ: Yếu tố tương thích là một trong những điều bạn cần cân nhắc khi chọn phần mềm web server. Nginx và Apache đều có thể chạy trên hầu hết các hệ điều hành của Unix. Tuy nhiên, hiệu năng của Nginx trên hệ điều hành Windows lại kém hơn so với Apache và những phần mềm khác.
- Hỗ trợ người dùng: Dù là người mới hay người có kinh nghiệm sử dụng phần mềm web server đều cần được hỗ trợ một cách tốt nhất. So với Nginx thì quá trình hỗ trợ người dùng của Apache kém hơn, mặc dù cả 2 phần mềm này đều có hệ thống mailing và diễn đàn.
- Đánh giá hiệu năng: Nginx có thể xử lý các nội dung tĩnh nhanh chóng cùng lúc với hơn 1000 yêu cầu và cũng dùng ít bộ nhớ hơn so với Apache. Nginx và Apache đều có tốc độ xử lý nội dung động như nhau.
Tóm lại, những ai đang sử dụng trang web tĩnh, thì Nginx là một gợi ý tốt.
Kết luận
Có thể thấy, kiến thức Nginx là gì không quá khó hiểu, phần mềm này có khá nhiều tính năng hỗ trợ tốt cho người dùng. Nginx có thể giúp người dùng mở rộng trang web, phát triển web và traffic của web. Bạn có thể cân nhắc Nginx hoặc Apache khi chọn web server.