So sánh Nginx và Apache

Trong hai thập kỷ, Apache đã thay đổi thị trường máy chủ web đang dần bị thu hẹp từng ngày. Nginx không chỉ bắt kịp với Apache, mà hiện còn là lựa chọn của nhiều trang web lưu lượng truy cập cao. Người dùng Apache có thể không đồng ý về vấn đề này. Đó là lý do tại sao rất khó để đi đến kết luận máy chủ web nào tốt hơn. Sự thật cả Apache và Nginx đều là phần cốt lõi của các web stack hoàn chỉnh (LAMP cũng như LEMP) và sự lựa chọn cuối cùng tùy thuộc vào nhu cầu của từng cá nhân.

Chẳng hạn, những người chạy các trang web Drupal thường chọn Apache, trong khi người dùng WordPress dường như ủng hộ Nginx nhiều hơn. Theo đó, mục tiêu của bài viết này là giúp bạn hiểu rõ hơn các yêu cầu của chính mình, thay vì cung cấp đề xuất mang tính dập khuôn cho tất cả mọi người. Sự so sánh sau đây giữa Nginx và Apache sẽ cho bạn một cái nhìn toàn cảnh chính xác.

1. Mức độ phổ biến

Cho đến năm 2012, hơn 65% các trang web dựa trên Apache. Sự phổ biến không phải chỉ vì lịch sử lâu đời của Apache. Đây là một trong những phần mềm tiên phong đầu tiên cho sự phát triển của World Wide Web. Tuy nhiên, thời thế đã thay đổi. Theo W3Tech.com, kể từ ngày 14 tháng 1 năm 2019, số lượng các trang web sử dụng máy chủ Apache (44,4%) chỉ hơn Nginx một chút (40,9%). Nginx và Apache chiếm lĩnh gần 85% thị trường máy chủ web.

Nginx và Apache chiếm lĩnh gần 85% thị trường máy chủ web

Khi nói đến các trang web có lưu lượng truy cập cao, biểu đồ sau đây thật thú vị. Trong đó, Nginx ở trên Apache nhưng lại nằm dưới Google Servers, dịch vụ cung cấp máy chủ cho các trang web như YouTube, Gmail và Drive.

Các trang web có lưu lượng truy cập cao

Một số lượng lớn các trang web đã di chuyển từ Apache sang Nginx. Rõ ràng, Nginx được coi là một máy chủ web mới và hợp thời hơn. Các trang web có lưu lượng truy cập cao trên Apache, ví dụ, Wikipedia và New York Times, thường sử dụng proxy HTTP front-end như Varnish.

Kết luận: Khoảng cách về mức độ phổ biến giữa Apache và Nginx đang thu hẹp rất nhanh. Xét về yếu tố này, Apache và Nginx hòa nhau.

2. Tốc độ

Đặc điểm chính của một máy chủ web tốt là nó phải chạy nhanh, cũng như dễ dàng đáp ứng các kết nối và lưu lượng truy cập từ bất cứ đâu. Để đo tốc độ máy chủ, bài viết đã so sánh hai trang web du lịch phổ biến dựa trên Apache (Expedia.com) và Nginx (Booking.com). Sử dụng một công cụ trực tuyến có tên Bitcatcha, các phép so sánh được thực hiện cho nhiều máy chủ và được đo dựa trên benchmark trên 200 ms của Google. Booking.com dựa trên Nginx được xếp hạng “đặc biệt nhanh chóng”. Trái lại, Expedia.com dựa trên Apache được xếp hạng “trên mức trung bình và có thể được cải thiện”.

Nếu đã sử dụng cả hai trang web du lịch này nhiều lần, bạn có thể xác nhận rằng Expedia chậm hơn một chút khi trả lại kết quả truy vấn so với Booking.

Công cụ trực tuyến Bitcatcha

Dưới đây là so sánh giữa hai máy chủ cho một vài trang web khác. Nginx nhanh hơn trong hầu hết các trường hợp dưới đây ngoại trừ một ngoại lệ.

Nginx nhanh hơn trong hầu hết các trường hợp dưới đây ngoại trừ một ngoại lệ

Kết luận: Nginx chiến thắng vòng này.

3. Bảo mật

Cả Nginx và Apache đều rất coi trọng tính bảo mật trên trang web của mình. Không có hệ thống mạnh mẽ nào mà lại không có những biện pháp đối phó với các cuộc tấn công DDoS, phần mềm độc hại và phishing. Cả hai máy chủ này định kỳ phát hành báo cáo bảo mật và những tư vấn, đảm bảo rằng khía cạnh bảo mật được tăng cường ở mọi cấp độ.

Kết luận: Nginx và Apache lại hòa nhau trong vòng này.

4. Kết nối đồng thời

Có một điều cần lưu ý là Apache, theo một cách nào đó, không thể so sánh với quy mô và khả năng của Nginx. Rốt cuộc, Nginx ban đầu được thiết kế để tăng tốc cho các trình xử lý FastCGI và SCGI. Tuy nhiên, từ Apache 2.4 trở đi (phiên bản mặc định), đã có sự cải thiện mạnh mẽ về số lượng kết nối đồng thời. Sự cải thiện này đã tiến triển đến đâu là điều đáng để tìm hiểu.

Dựa trên các bài kiểm tra tại Loadimpact.com, bài viết lại so sánh Booking.com (Nginx) với Expedia.com (Apache). Đối với 25 người dùng ảo, trang web Nginx có thể ghi 200 yêu cầu mỗi giây, cao hơn 2,5 lần so với Apache (80 yêu cầu mỗi giây). Rõ ràng, nếu bạn có một trang web lưu lượng truy cập cao chuyên dụng, Nginx là một lựa chọn an toàn hơn.

Kết nối đồng thời

Kết luận: Nginx chiến thắng vòng này.

5. Tính linh hoạt

Một máy chủ web phải đủ linh hoạt để cho phép các tùy chỉnh. Apache làm điều đó khá tốt, thông qua việc sử dụng các công cụ .htaccess mà Nginx không hỗ trợ. Nó cho phép phân cấp nhiệm vụ admin. Admin bên thứ ba và admin cấp hai có thể bị ngăn truy cập vào máy chủ chính. Hơn nữa, Apache hỗ trợ hơn 60 mô-đun, giúp nó có khả năng mở rộng cao. Đó là lý do tại sao Apache phổ biến hơn với các nhà cung cấp dịch vụ hosting chia sẻ.

Tính linh hoạt

Kết luận: Apache chiến thắng vòng này.

Các thông số khác

Trước đây, Nginx không hỗ trợ tốt lắm cho hệ điều hành Windows, không giống như Apache. Tuy nhiên, điều này không còn nữa. Ngoài ra, Apache cũng từng bị coi là khá yếu về cân bằng tải và reserve proxy. Nhưng mọi thứ bây giờ đã thay đổi!

Kết quả cuối cùng

Nginx chiến thắng sít sao với tỷ số 2-1. Như đã nói, sự so sánh khách quan giữa Nginx và Apache về các thông số kỹ thuật sẽ đưa ra bức tranh hoàn chỉnh. Kết luận cuối cùng là cả hai máy chủ web đều hữu ích theo cách riêng của chúng.

Mặc dù Apache nên được sử dụng với máy chủ front-end (mà chính bản thân Nginx cũng là một tùy chọn), nhưng Nginx có thể tốt hơn với nhiều tùy chỉnh và tính linh hoạt.

Thứ Tư, 04/09/2019 08:13
4,33 👨 309