So sánh nginx và iis

Cùng tìm hiểu về các loại cấu hình Web Server – máy chủ có dung lượng lớn, tốc độ cao và công dụng là lưu trữ các thông tin trên internet như một ngân hàng dữ liệu, phổ biến hiện nay.

Web Server Apache

Web server Apache là một trong những web server nổi tiếng trên thế giới và được phát triển bởi Quỹ Phần mềm Apache. Web server Apache là phần mềm mã nguồn mở, hỗ trợ hầu hết các hệ điều hành như Unix, Linux, Windows, Mac OS X, FreeBSD,…

Với loại web server này bạn sẽ có các tùy biến được thực hiện dễ dàng bởi vì chúng có cấu trúc theo dạng Module. Nếu cảm thấy phù hợp bạn hoàn toàn có thể thêm mới, sửa đổi các Module vào server theo ý muốn.

Khi so sánh với những loại máy chủ web khác thì Apache cũng ổn định và dễ dàng xử lý khi có vấn đề xảy ra. So với các phiên bản tiền nhiệm thì các phiên bản mới của web server Apache có khả năng xử lý được nhiều yêu cầu hơn.

Web server IIS

Web server IIS có rất nhiều tính năng giống như Apache. Tuy nhiên, do đây không phải là mã nguồn mở chính vì thế mà việc thêm, chỉnh sửa các Module theo ý muốn là khá khó khăn. Web server IIS có khả năng chạy trên tất cả nền tảng của hệ điều hành của Windows.

Microsoft đã phát triển Web server IIS và được tích hợp cùng với hệ điều hành Windows Server. Tất cả các tính năng của web server được quản lý độc lập do đó chúng ta có thể dễ dàng thêm, loại bỏ hoặc thay thế các tính năng của web server.

Số lượng những trang web sử dụng máy chủ IIS lên đến hàng trăm triệu website. Vì được tích hợp ASP.NET mà IIS có thể sử dụng toàn bộ sức mạnh của ASP.NET. Máy chủ có thể phát triển nhanh chóng nhờ vào giao diện quen thuộc và các dịch vụ ứng dụng của ASP.NET.

Web Server Nginx

Web server Nginx là một máy chủ mã nguồn mở miễn phí bao gồm máy chủ POP3 và IMAP. Ưu điểm của web server này là ổn định, hiệu suất cao, cấu hình đơn giản và sử dụng tài nguyên thấp.

Nginx không dùng các chuỗi để xử lý các yêu cầu mà sử dụng kiến trúc lập trình theo sự kiện. Đây là loại kiến trúc lập trình sử dụng bộ nhớ khi tải nhỏ và có thể dự đoán được. Hiện tại tính trên toàn thế giới thì Nginx đang lưu trữ khoảng 7.5 % các tên miền.

Nginx là một web server nhẹ và không chiếm nhiều tài nguyên của hệ thống, hoạt động ổn định, cấu hình đơn giản và hiệu suất cao. Nginx có thể chạy được trên các hệ điều hành như Linux, FreeBSD, Windows, MacOS… và được phát hành rộng rãi theo giấy phép BSD.

Web server LiteSpeed

LiteSpeed hay LiteSpeed Web Server là một dịch vụ Web Server chạy trên nền tảng OS Linux. Web server này được biết đến với khả năng cung cấp một hiệu suất tuyệt vời và khả năng mở rộng cực cao.

Web server LiteSpeed có rất nhiều tính năng tương tự như Apache. Với Web server LiteSpeed, bạn có khả năng tải lên các file cấu hình Apache một cách trực tiếp. Ngoài ra thì loại web server này có thể đồng thời hoạt động như một Drop-in Replacement Apache với các Control Panel của Hosting.

LiteSpeed có khả năng phục vụ số lượng lớn khách truy cập đồng thời với việc sử dụng tài nguyên ở mức tối thiểu. LiteSpeed đạt hiệu suất cao hơn Apache trong việc xử lý PHP cũng như file tĩnh bởi vì được lập trình với code tối ưu hơn.

Có thể bạn quan tâm:

Web Server Apache và Nginx là gì? So sánh ưu nhược điểm, cái nào tốt?

Hôm nay chúng ta cùng đánh giá công nghệ, được sử dụng hầu hết trên các web hosting hiện nay là: NGINXApache.

Qua 6 yếu tố chính:

  • Hiệu suất cho các nội dung tĩnh vs động
  • Hỗ trợ hệ điều hành
  • Bảo mật
  • Tính linh hoạt
  • Tài liệu hướng dẫn
  • Hỗ trợ

Chúng ta sẽ thấy rằng cả hai là đối thủ cạnh tranh xứng tầm với nhau.

Nhưng Apache với file .htaccess, làm cho nó trở nên đặc biệt hấp dẫn hơn với người dùng.

Trong khi đó, NGINX chuyên hỗ trợ nội dung động, và một phần do các tính năng tiên tiến hơn của nó.

NGINX được sử dụng rất phổ biến nhất trên VPS và Dedicated Hosting.

Cuối cùng, chúng ta sẽ hãy xem NGINX và Apache đâu là web server tốt nhất?

Nhưng trước hết tôi muốn giới thiệu qua cho các bạn về web server là gì?

Web server hay còn được gọi là máy chủ web, nó là một chương trình sử dụng giao thức HTTP [Hypertext Transfer Protocol], để cung cấp các file để tạo thành các trang của website cho người dùng, đáp ứng nhu cầu của họ [request], cuối cùng được phân phát tới thiết bị của user.

Tóm lại bạn có thể hiểu web server là máy chủ, nơi lưu các file của một website như [HTML, CSS, JavaScript, Ảnh]. Sau đó cung cấp chúng cho người dùng, thông qua mạng internet.

Có một thời kỳ [cuối những năm 90 của thế kỷ 20 đến năm 2011] khi web server Apache chiếm khoảng 60% các trang web trên thế giới.

Tỷ lệ phần trăm này kể từ đó đã giảm xuống dưới 35% và vẫn đang giảm với tốc độ khá đáng kể.

Trong khi đó, máy web server IIS của Microsoft đã phần nào giữ ổn định, tăng nhẹ thị phần của thị trường, đạt được 30% hiện nay.

Vị trí thứ ba được thuộc về một đối thủ được gọi là NGINX [phát âm “engine x”], mà hiện đang chiếm khoảng 16% của tất cả các website.

Và tỉ lệ này đang tăng đều khoảng một phần trăm mỗi năm.

Mình có để ý rằng một số điều tra viên web đánh giá thị trường cổ phiếu của Apache và NGINX cao hơn nhiều, họ xem xét IIS như một đối thủ cạnh tranh yếu hơn.

Thực tế nó có thể nằm đâu đó ở giữa, nhưng xu hướng chung là rõ ràng.

Chỉ xét các trang web được truy cập nhiều nhất trên web, Apache chiếm khoảng 46% thị phần, nhưng tỷ phần đó giảm khoảng 4% hàng năm.

NGINX giữ một vị trí thứ hai với 24% thị phần và đang tăng trưởng với tốc độ khoảng 3% mỗi năm.

Rõ ràng NGINX đang thu hút nhiều website giá trị nhất thế giới!

Kết quả khảo sát thị phần Web Server của SharesNetCraft:

 Tất cả các trang web [trái] & Across Top Sites tỷ được truy cập nhiều nhất [phải]

Trong bài viết này, chúng tôi sẽ so sánh NGINX và Apache với các yếu tố sau:

  • Hiệu suất
  • Hỗ trợ hệ điều hành
  • Bảo vệ
  • Tính linh hoạt
  • Tài liệu
  • Hỗ trợ người dùng

Apache là một web server rất phổ biến đến tận ngày nay. Được duy trì và phát triển bởi Apache Software Foundation.

Nó là một free open source, được sử dụng trên rất nhiều website nổi tiếng như: IBM, Adobe, VMware, LinkedIn, Facebook, AT&T, Siemens, eBay.. [nguồn].

Nếu bạn đã từng nghe nói đến LAMP [Linux, Apache, MySQL, PHP].

Một trong những web stack [ nền tàng web] phổ biến nhất hiện nay và Apache chính là một trong số đó.

Mặc dù ngày nay còn rất nhiền tảng web khác như [NodeJS, rich clients JS frameworks, various cloud services…]

Nhưng Apache vẫn rất được yêu thích và tin dùng.

Web server Apache có một tập hợp phong phú các tính năng có thể được kích hoạt thông khoảng 60 module chính thức [có nhiều cái không được phát hành chính thức].

Nhiều năm qua, Apache đã phát triển một số phương pháp để cái thiện hiệu năng [chủ yếu là bộ nhớ RAM và độ trễ].

Ngày nay dung lượng website ngày càng lớn và cần có những phương pháp mới.

Các phương pháp xử lý yêu cầu của Apache có thể được cấu hình theo một trong 3 cách.

Tôi sẽ trình bày 3 Multi-Processing module [MPMs] chính dưới đây:

  • Process model: Đây là bản gốc của phương pháp “pre-fork”; nó cũng không vận hành tốt với nhiều kết nối đồng thời, vì nó tiêu tốn rất nhiều RAM và thậm chí có thể từ chối các kết nối ở thời điểm load cao điểm. Các trang web nhỏ hơn sẽ không nhận thấy điều này, nhưng các trang web lớn có khả năng sẽ bị như vậy.
  • Worker Process: Điều này tạo ra một quá trình điều khiển duy nhất có trách nhiệm triển khai các tiến trình con. Mỗi tiến trình con sau đó tạo ra một số lượng cố định các thread, cũng như một listener thread. Các listener thread cho các kết nối và chuyển chúng đến một thread để xử lý khi chúng đến nơi. Mặc dù mô hình này độ co giãn tốt hơn nhiều so với các phương pháp pre-fork, nó vẫn có thể mắc phải vấn đề scale khi trang web có lưu lượng truy cập cao.
  • Event model: giống với mô hình worker, nhưng nó tạo ra một listener thread mà lắng nghe cho các kết nối và chuyển chúng vào một worker thread để xử lý. MPM này xử lý các kết nối dài chạy hiệu quả hơn nhiều trên một thread duy nhất [KeepAlive xử lý]. Kể từ Apache 2.4, event model đã được coi là ổn định và bây giờ cũng là thiết lập mặc định nếu hệ điều hành có thể hỗ trợ nó.

Bạn cũng có thể thử các tùy chọn compile-time and run-time options để cải thiện hiệu suất của Apache.

Nginx cũng là một open source web server được viết bởi Igor Sysoev, một kỹ sư người Nga.

Dự án này được bắt đầu từ năm 2002, và được hoàn thành và công bố vào năm 2004.

Kể từ đó NGINX đã trở thành một tiêu chuẩn phổ biến cho các trang web có performace cao, và khả năng mở rộng.

Hàng chục triệu trang web ngày nay sử dụng NGINX, bao gồm top 100.000 trang web lớn nhất thế giới.

Gồm các công ty như: Airbnb, Box, Dropbox, Netflix, Tumblr, WordPress.com…

Do nó được sinh ra để là tối ưu hóa hiệu suất theo quy mô lớn.

Nginx thường vượt trội so với các web server phổ biến khác trong các thử nghiệm.

Đặc biệt là trong các tình huống có nội dung tĩnh và / hoặc nhiều request cùng lúc.

NGINX đã được tạo ra để đáp ứng với thách thức C10K.

Xử lý ít nhất 10.000 khách hàng kết nối đồng thời trên một máy chủ duy nhất.

NGINX sử dụng một kiến trúc event-driven không đồng bộ để xử lý những số lượng kết nối khổng lồ này.

Bản đồ của kiến trúc event-driven NGINX Event-Driven ArchitectureNGINX giúp dự đoán RAM và CPU, cũng như độ trễ, cho việc tải nhiều / dao động bất thường.

Với kiến trúc này làm cho mang đến khả năng chịu tải cao hơn, tận dụng dự đoán về cách sử dụng bộ nhớ RAM, sử dụng CPU, và độ trễ để đạt hiệu quả cao hơn.

Sự khác biệt chính giữa NGINX và Apache, về các event model, là NGINX không thiết lập worker process thêm cho mỗi kết nối.

Trong hầu hết các trường hợp, các cấu hình NGINX đề nghị được chạy một worker process cho mỗi CPU, tối đa hóa hiệu quả của phần cứng.

NGINX cũng có một bộ tính năng phong phú như:

  • Reverse proxy with caching
  • IPv6
  • Load balancing
  • FastCGI support with caching
  • WebSockets
  • Handling of static files, index files, and auto-indexing
  • TLS/SSL with SNI

NGINX hỗ trợ FastCGI và SCGI xử lý để phục vụ các nội dung động như PHP và Python.

Nó sử dụng các LEMP web stack [nền tảng web]: một biến thể của LAMP [Linux, “En-juhn-ex”, MySQL, PHP].

Bây giờ chúng ta hãy so sánh cả hai web server trong một số lĩnh vực.

Chúng ta sẽ thấy rằng Apache và NGINX là đối thủ cạnh tranh xứng đáng, nhưng tùy thuộc từng trường hợp

Mỗi web server có thể phù hợp hơn cho dự án của bạn hơn cái còn lại.

Đừng lo lắng, tôi sẽ tóm tắt lại trong kết luận so sánh NGINX / Apache.

Trong so sánh này, hãy xem 2 web server này cung cấp nội dung tĩnh và động cái nào nhanh hơn.

NGINX là nhanh hơn khoảng 2,5 lần so với Apache dựa trên kết quả của một thử nghiệm benchmark chạy lên đến 1.000 kết nối đồng thời.

Ở một bechmark khác với 512 kết nối đồng thời, cho thấy NGINX là nhanh hơn khoảng hai lần và tiêu thụ ít bộ nhớ một chút [4%].

Rõ ràng, NGINX phục vụ nội dung tĩnh nhanh hơn nhiều so với Apache.

Nếu bạn cần phải phục vụ rất nhiều nội dung tĩnh ở mức cao, NGINX có thể là một công cụ trợ giúp thực sự.

Một thử nghiệm năm 2015 so sánh các nội dung động được phân phối bởi Apache và NGINX.

Cho thấy rằng Apache event MPM, khi ghép nối với các module PHP-FPM, có thể xử lý đồng thời giống như NGINX với PHP.

Về mặt hiệu năng cho thấy kết quả tương tự, không có khác biệt.

Lý do cho điều này là toàn bộ thời gian xử lý yêu cầu được sử dụng trong môi trường PHP, chứ không phải là một phần lõi của máy chủ web.

Thời gian chay trong các môi trường PHP, là khá giống nhau giữa cả hai máy chủ web.

Điểm benchmark trên Speedemy web server có kết quả, tương tự như sử dụng cả Apache và NGINX để phục vụ nội dung động.

Xét về PHP [và các ngôn ngữ khác], hiệu suất máy chủ trang động là thực tế tương đương với một thiết lập Apache module thích hợp [PHP-FPM + FastCGI].

Nếu bạn thực sự muốn tăng tốc độ trang động, bạn có một vài lựa chọn: thêm một lớp bộ nhớ đệm Varnish hoặc Memcached caching.

Thật không may, trang của NGINX không dịch để phục vụ các trang động. Cả hai máy chủ web đều ghi điểm bằng nhau về điểm này.

Apache chạy trên tất cả các loại hệ thống Unix-like [Linux hoặc BSD] và hỗ trợ đầy đủ cho Microsoft Windows.

NGINX cũng chạy trên một số hệ thống Unix hiện đại và có một số hỗ trợ cho Windows.

Nhưng hiệu suất Windows của nó không tăng mạnh như các nền tảng khác.

Về điểm nay, Apache mạnh hơn một chút.

Cả Apache và NGINX đều có thành tích tuyệt về bảo mật về bộ mã nguồn của mình.

Mã nguồn của NGINX khá nhỏ gọn, do đó chắc chắn là một điểm cộng lớn từ góc độ an ninh.

Apache từng được báo cáo là có cách lỗ hổng bảo mật từ version 2.2 và 2.4.

NGINX cũng có một danh sách các tư vấn về vấn đề bảo mật gần đây.

Apache cung cấp lời khuyên cấu hình để xử lý cuộc tấn công DDoS, cũng như các mod_evasive để ứng phó với HTTP DoS, DDoS, hoặc brute force attacks.

Bạn cũng có thể tìm thấy các chủ đề để đối phó với các mối đe dọa DDoS trên blog NGINX.

Các web server có thể tùy biến thêm bằng cách viết các module.

Apache đã cung cấp các dynamic module từ lâu, vì vậy tất cả các module Apache đều hỗ trợ điều này.

Tuy nhiên,với NGINX thì lại là một vấn đề khác. Đầu năm 2016 NGINX mới hỗ trợ cho các dynamic module.

Trước đây, NGINX cần các admin để biên dịch các module vào nhị phân NGINX.

Hầu hết các module chưa hỗ trợ nạp động, nhưng theo thời gian họ có lẽ sẽ có.

Apache rõ ràng dẫn đầu ở điểm này.

Cả Apache và NGINX có khá nhiều các module với nhiều tính năng:

Apache module:

  • Modules chính thức từ Apache
  • Danh sách module trên Wikipedia

Thật không may, các module bên thứ ba dường như không được update và kiểm tra.

So sánh NGINX và ApacheNGINX và Apache, cả hai đều có bộ tính năng phong phú và ngày càng mở rộng.

Không có cái nào tốt hơn, mà chỉ là cái này phù hợp với bạn hơn.

module NGINX:

  • Module chính thức từ NGINX
  • Các module từ bên thứ 3

Đánh giá qua thấy rằng Apache hay NGINX, đều khá tương đông về các tính năng mở rộng.

Hầu hết các module cần thiết như [ proxy, caching, cân bằng tải…] đều có cả trên cả 2 webserver.

NGINX tốt hơn khi hoạt động như một reverse proxy cho TCP và các kết nối TCP và email [SMTP, IMAP, POP3].

Đối với các media streaming module, phiên bản NGINX có vẻ đang hoạt động tốt hơn.

NGINX không có file .htaccess giống như Apache.

Với file .htaccess, cho phép bạn ghi đè lên các thiết lập toàn hệ thống trên cho mỗi thư mục;

Tuy nhiên, cho hiệu suất tối ưu, các lệnh trên .htaccess nên được đưa vào file các tệp cấu hình chính.

Điều này là không thể đổi với shared hosting.

Các tài liệu cho cả Apache và NGINX đều tuyệt vời, bao gồm wiki NGINX.

NGINX cũng cung cấp các khóa đào tạo trực tuyến, họ thậm chí còn cung cấp cả chứng chỉ.

Apache cung cấp các phương thức hộ trợ như email, IRC, Stack Overflow.

Có các dịch vụ hỗ trợ trả phí của bên thứ 3 như: OpenLogic, nhưng không có dịch vụ chỉnh thức từ Apache Foundation.

NGINX cũng tương tự Apache về các phương thức hỗ trợ.

Công ty đằng sau NGINX cung cấp một sản phẩm thương mại được gọi là NGINX Plus.

Với một loạt các tính năng bổ sung: load-balancing, media streaming, và monitoring.

Cả hai webserver hiện nay, đều có thể cạnh tranh với nhau trong hầu hết các tiêu chí.

Đối với nội dung tĩnh NGINX là vua, nhưng đối với nội dung động nó kém hơn một chút.

NGINX nổi bật với một số tính năng cao cấp của nó [media streaming, reverse proxying for non-HTTP protocols]

Người dùng shared hositng có thể thích sự tiện lợi của file .htaccess Apache.

Và Apache có khá nhiều dynamic module [NGINX mới chỉ bắt đầu thêm dynamic module]

NGINX được sử dụng chủ yếu cho VPS hosting, dedicated hosting, hoặc container cluster.

Với các website có lượt truy cập cao có nhu cầu phục vụ rất nhiều nội dung tĩnh và / hoặc streaming media sẽ hướng tới NGINX.

Nhưng đa phần cả 2 sẽ hoạt động tốt trong hầu hết mọi trường hợp

Bất kể với web server nào, hãy chọn một nhà cung cấp hosting tốt nhất trên nền tảng Linux.

Với VPS tôi khuyên bạn nên dùng Vultr, còn với Shared hosting Bluehost, HawkHost đều đáng sử dụng.

Video liên quan

Chủ Đề