Nginx hay Apache cái nào tốt hơn ?

Chúng ta tìm hiểu về Nginx và Apache so sánh tương đồng để có sự lựa chọn hợp lý.

Nginx là gì?

Nginx là một máy chủ proxy ngược mã nguồn mở (open source reverse proxy server) sử dụng phổ biến giao thức HTTP, HTTPS, SMTP, POP3 và IMAP , cũng như dùng làm cân bằng tải (load balancer), HTTP cache và máy chủ web (web server). Dự án Nginx tập trung vào việc phục vụ số lượng kết nối đồng thời lớn (high concurrency), hiệu suất cao và sử dụng bộ nhớ thấp. Nginx được biết đến bởi sự ổn định cao, nhiều tính năng, cấu hình đơn giản và tiết kiệm tài nguyên.

Không giống như các chương trình máy chủ khác, Nginx không dựa vào luồng (threads) để xử lý các truy vấn (request). Thay vào đó, Nginx sử dụng kiến trúc hướng sự kiện (event-driven) không đồng bộ (asynchronous) và có khả năng mở rộng. Ngay cả khi bạn không cần phải xử lý hàng ngàn truy vấn đồng thời, thì bạn vẫn nên sử dụng Nginx do hiệu suất cao và yêu cầu bộ nhớ thấp của Nginx so với Apache.

Apache là gì?

Apache là một trong các Webserver đơn giản nhất và phổ thông nhất để phát triển các dự án website, và từ 1996 Apache trở thành phần mềm webserver phổ biến nhất thế giới, và cho tới năm 2009 Apache đã chiếm 46 % tổng số website chạy trên nền tảng của nó.

Từ tháng 4 năm 1996, Apache trở thành một chương trình máy chủ HTTP thông dụng nhất. Hơn nữa, Apache thường được dùng để so sánh với các phần mềm khác có chức năng tương tự. Tính đến tháng 1 năm 2007 thì Apache chiếm đến 60% thị trường các chương trình phân phối trang web.

Nginx hay Apache cái nào tốt hơn ?

Cơ chế hoạt động của hai Web Server này cũng khác nhau tạo nên hai đặc điểm và ưu thế khác nhau, ví dụ Nginx có tất cả các chức năng mà Apache có:

  • Static file serving.
  • SSL/TLS support.
  • Virtual hosts.
  • Reverse proxying.
  • Load balancing.
  • Compression.
  • Access controls.
  • URL rewriting.
  • Custom logging.
  • Server-side includes.
  • Limited WebDAV.
  • FLV streaming.
  • FastCGI.

Trong khi đó Apache lại có những chức năng mở rộng hơn so với Nginx như sau:

  • digest access authentication
  • CGI
  • administrative console
  • .htaccess

Có một điều làm cho Nginx ít phổ thông hơn so với Apache chính là: Nginx chỉ thích hợp cho việc phục vụ các Server riêng, chứ không thích hợp cho Shared Hosting, với mỗi lần cấu hình Nginx lại phải load lại file config của nó trên server, người dùng nếu có quyền này chắc chắn dễ dàng làm chết cả server với hàng trăm website cùng nhau chạy.

Nginx tỏ ra ưu thế hơn hẳn Apache về tốc độ và sử dụng bộ nhớ của máy chủ, WordPress.org cũng đã có một cuộc thí nghiệm của riêng mình để đánh giá việc này, Nginx hoạt động tuyệt vời với 8000 request / giây ( http://barry.wordpress.com/2008/04/28/load-balancer-update/ )

Điều đặc biệt là Nginx dùng rất ít Ram và CPU, trong một cuộc thí nghiệm, Nginx ăn hết 25Mb Ram và 10% CPU load với 10 triệu lượt truy cập / ngày, không thể tưởng tượng được !

Apache và Nginx đều miễn phí, hoạt động và phát triển dưới các giấy phép mã nguồn mở, copyfree nên bạn không phải trả phí khi cài đặt chúng.

Theo NETSA thì chọn Nginx cho server của mình cài đặt Nginx, PHP-FPM, MySQL thì sẽ là một lựa chọn tốt nhất. Nginx có thể được sử dụng trên VPS cấu hình từ thấp nhất đến cao nhất của NETSA hoặc đến một hệ thống rộng lớn như cloud server với nhiều clusters.