NGINX là gì? Đây có thể là một khái niệm quen thuộc với nhiều bạn. Nhưng nếu bạn là người mới làm quen với NGINX mà các bạn lại chưa biết NGINX là gì? NGINX hoạt động như thế nào? Vậy mời các bạn hãy cùng tìm hiểu cùng Khotenmien.vn qua bài viết dưới đây nhé.
1. NGINX là gì?
NGINX, đọc là “engine-ex,” là một phần mềm Website server mã nguồn mở nỗi tiếng. Ban đầu nó sử dụng để phục vụ Website HTTP. Nhưng, tại thời điểm này nó cũng được dùng làm reverse proxy, HTTP load balancer & Mail proxy như IMAP, POP3, & SMTP.
NGINX xuất bản chính thức vào tháng 10 năm 2004. Nhà sáng lập của ứng dụng này là Igor Sysoev, khai triển dự án từ năm 2002 để giải quyết vấn đề C10k. C10k là giới hạn của việc xử lý 10 ngàn kết nối cùng lúc. Tại thời điểm này, có nhiều Website server còn phải chịu nhiều kết nối hơn vậy để xử lý. NGINX dùng kiến trúc hướng sự kiện (event-driven) không đồng bộ (asynchronous). Tính năng này khiến NGINX server trở nên đáng tin cậy, tốc độ và khả năng mở rộng khổng lồ nhất.
Vì năng lực mạnh mẽ, và để có thể xử lý hàng nghìn kết nối cùng lúc, nhiều Website có traffic lớn đã sử dụng dịch vụ NGINX. Một số trong số những ông lớn công nghệ sử dụng nó là Google, Netflix, Adobe, Cloudflare, WordPress, & còn nhiều thêm nữa.
Các mốc ra đời & phát triển của Nginx.
Năm 2002, Igor Sysoev phát triển Nginx ban đầu và ra mắt lần đầu vào năm 2004. Tháng 7 năm 2011, doanh nghiệp Nginx Inc được thành lập với trụ sở trước tiên tại San Francisco, California, USA.
2. NGINX hoạt động như thế nào?
NGINX cũng hoạt động tương tự như các server khác
Về cơ bản, NGINX cũng hoạt động tương tự như các Website server khác. Khi bạn mở một trang Web, trình duyệt web của bạn sẽ liên hệ với server chứa Website đấy. Server sẽ tìm kiếm đúng tệp tin yêu cầu của Website & gửi về cho bạn. Đây là một trình tự xử lý dữ liệu single – thread, nghĩa là các bước được làm theo một trình tự duy nhất. Mỗi yêu cầu sẽ được tạo một thread riêng.
Nhưng, NGINX hoạt động theo kiến trúc bất đồng bộ (asynchronous) hướng sự kiện (event driven). Nó cho phép các threads tương đồng được quản lý trong một tiến process. Mỗi process hoạt động sẽ bao gồm các thực thể nhỏ hơn, gọi là worker connections sử dụng để xử lý toàn bộ threads.
Worker connections sẽ gửi các yêu cầu cho worker process, worker process sẽ gửi nó tới master process, & master process sẽ giải đáp các yêu cầu đó. Đó là lý do tại sao một worker connection có thể xử lý đến 1024 yêu cầu tương tự nhau. nhờ vào điều đó, NGINX có thể xử lý hàng ngàn yêu cầu khác nhau cùng một lúc.
3. Các tính năng của NGINX là gì?
Tại sao nên sử dụng NGINX? Để giải đáp câu hỏi này ta có thể kể đến các tính năng vượt trội của NGINX như sau:
- Có thể xử lý hơn 10.000 kết nối cùng lúc với bộ nhớ thấp;
- Phục vụ tập tin tĩnh (static files) & lập chỉ mục tập tin;
- Tăng tốc proxy ngược bằng bộ nhớ đệm (cache); cân bằng tải dễ dàng và khả năng chịu lỗi;
- Hỗ trợ tăng tốc với bộ nhớ đệm của FastCGI, uWSGI, SCGI, & các máy chủ memcached;
- Kiến trúc modular; tăng vận tốc nạp trang bằng nén gzip tự động;
- Hỗ trợ mã hoá SSL và TLS;
- Cấu hình linh hoạt; lưu lại nhật ký truy vấn;
- Chuyển hướng lỗi 3XX-5XX;
- Rewrite đường dẫn (URL rewriting) sử dụng regular expressions;
- Hạn chế tỷ lệ đáp ứng truy vấn;
- Giới hạn số kết nối cùng lúc đó hoặc truy vấn từ 1 địa chỉ;
- Khả năng nhúng mã PERL;
- Hỗ trợ và tương thích với IPv6; xem thêm bài content IPv6 là gì?
- Hỗ trợ WebSockets;
- Hỗ trợ truyền tải tệp tin FLV và MP4.
4. NGINX Server vs Apache Server.
Bên cạnh các Web server phổ biến, Apache là một trong những đối thủ chính của NGINX. Nó đã xuất hiện lâu từ thập niên 90 và có cộng đồng người dùng rất lớn. Nếu bạn phải cần biết loại Web server nào phù hợp nhất với nhu cầu của bạn, hãy xem qua bảng so sánh căn bản giữa NGINX server & Apache server sau.
- Hệ điều hành hỗ trợ
Tương thích là một trong số ít các vấn đề bạn nên xem trong khi chọn ứng dụng. Cả NGINX và Apache đều có thể chạy trên nhiều hệ điều hành khác nhau của hệ thống Unix. Nhưng không may là, hiệu suất của NGINX trên Windows lại tỏ ra kém có kết quả tốt hơn khi hoạt động trên các platform khác. - Hỗ trợ người sử dụng
Người dùng, từ người mới bắt đầu đến người có chuyên môn, đều cần một nơi tốt, một cộng đồng ổn để cùng nhau hợp tác xử lý vấn đề phát sinh. Mặc dù cả NGINX & Apache đều có hệ thống mailing hỗ trợ & diễn đàn Stack Overflow, nhưng Apache lại thiếu hỗ trợ từ chính công ty của nó, Apache Foundation. - Hiệu suất
NGINX xử lý cùng lúc 1000 kết nối tới nội dung tĩnh nhanh hơn 2 lần so sánh với Apache và dùng ít bộ nhớ hơn. Khi so về hiệu năng trên nội dung động, cả 2 nền tảng cho tốc độ giống nhau. NGINX là lựa chọn tốt hơn cho những ai có Website tĩnh nhiều hơn.
TẠM KẾT.
Qua bài viết trên, Khotenmien.vn đã giải thích NGINX là gì? NGINX hoạt động như thế nào? Hi vọng rằng những thông tin vừa chia sẻ ở trên sẽ giúp ích cho các bạn từ đó có thể giúp bạn có thêm nhiều kiến thức về lĩnh vực này!
Xem thêm: RESTful API là gì? Cách thức hoạt động của Rest API là gì?
Thu Uyên – Tổng hợp, chỉnh sửa.