Nginx là gì? Giới thiệu và cách nó hoạt động

0
198
nginx là gì

NginX là gì?

Nginx hay còn đọc là “engine-ex”, là một web server mã nguồn mở, do ban đầu nginx đã rất thành công với webserver, nên bây giờ nó cũng được sử dụng như một reverse proxy, HTTP cache và load balancing.

Một số các công ty lớn có tên tuổi sử dụng phần mềm nginx như Autodesk, T-mobile, Gitlab, DuckDuckGo, Microsoft, Google, …và rất nhiều công ty khác nữa.

Nginx ban đầu được tạo ra bởi Igor Sysoev, lần phát hành đầu tiên vào tháng 10 năm 2004. Igor đã từng nghĩ rằng phần mềm chính là câu trả lời cho bài toán C10K hay rõ hơn là bài toán liên quan đến hiệu năng để xử lý 10,000 kết nối đồng thời.

Do điểm cốt lõi của NginX chính là tối ưu hóa hiệu suất theo quy mô, nên NginX thường vượt trội hơn nhiều so với các đối thủ web server phổ biến khác trong các bài kiểm tra benchmark. Đặc biệt trong các tình huống với những nội dung tĩnh và/hoặc các truy vấn đồng thời cao, và đó chính là lý do rất nhiều các nhà cung cấp hosting dùng NginX để làm máy chủ cung cấp dịch vụ của họ.

NginX hoạt động thế nào?

NginX được xây dựng để giải bài toán sử dụng bộ nhớ thấp và cho phép các kết nối đồng thời cao. Thay vì tạo ra các process mới cho mỗi truy vấn web, NginX sử dụng cách tiếp cận khác là bất đồng bộ và hướng sự kiện trong đó các truy vấn được xử lý chỉ bởi một luồng (thread).

Với NginX, một master process có thể kiểm soát nhiều worker process. Master process sẽ duy trì các worker process, trong khi worker chỉ có mỗi mục đích là xử lý. Bởi vì NginX là bất đồng bộ, mỗi truy vấn có thể được thực thi bởi worker cùng thời điểm mà không chặn các truy vấn khác.

Một vài tính năng phổ biến trong NginX bao gồm:

  • Reverse proxy hỗ trợ caching
  • IPV6
  • Load balancing
  • FastCGI hỗ trợ caching
  • Websockets
  • Xử lý các file tĩnh
  • TLS/SSL với SNI

Số liệu sử dụng NginX so với Apache

Apache cũng là một web server mã nguồn mở khác. Về mặt số liệu, Apache là web server được sử dụng phổ biến nhất thế giới và được dùng bởi 43.6% (giảm từ 47% năm 2018) trong tổng số tất cả các website với các website được biết tới. NginX đứng vị trí thứ 2 với tỉ lệ khoảng 41.8%.

Netcraft đã thực hiện một cuộc khảo sát qua 233 triệu domain và thấy rằng lượng máy chủ sử dụng Apache vào khoảng 31.54% và NginX vào khoảng 26.20%.

netcraft

Trong khi Apache là lựa chọn phổ biến nhất, nhưng thực sự thì NginX là web server phổ biến nhất cho các trang web có lưu lượng truy cập cao.

Trong thực tế, NginX được dùng bởi một số các trang web sử dụng nhiều tài nguyên nhất, như Netflix, Nasa và thậm chí là WordPress.com

Cách kiểm tra loại web server đang chạy là gì?

Trên hầu hết các website, bạn có thể đơn giản kiểm tra HTTP header của server để xem nếu nó là nginx hay apache. Bạn có thể thấy HTTP header bằng cách khởi chạy sang tab Network trong Chrome Devtool. Hoặc bạn có thể kiểm tra header bằng các công cụ khác như pingdom hoặc curl.

Truy nhiên, HTTP header có thể không phải luôn luôn tiết lộ đúng web server nằm bên dưới. Ví dụ, nếu một trang web như wordpress sử dụng proxy server như cloudflare, thì khi đó HTTP header sẽ là HTTP header của máy chủ cloudflare.

5/5 (1 Review)