So sánh apache và nginx
Điểm khác nhau cơ bản giữa Apache và NGINX là về kiến trúc thiết kế của chúng. Apache sử dụng cách tiếp cận theo hướng quy trình và sẽ tạo ra một luồng mới cho mỗi yêu cầu. Trong khi NGINX sử dụng kiến trúc hướng sự kiện để có thể xử lí nhiều yêu cầu trong một luồng
Thông tin cơ bảnApache HTTP Server
Apache HTTP Server là một nền tảng webserver mã nguồn mở còn được biết tới với tên httpd và Apache
Một vài thông tin thú vị về Apache
Apache Software Foundation quản lí nhãn hiệu và dịch vụMáy củ được phát triển và bảo trì bởi cộng đồng lập trình viên mở dưới sự chỉ đạo của ASFPhần lớn chạy trên Linux, Apache đang vận hành 46% website khắp thế giớiNGINX Web Server
Nginx được phát âm là “Engine X” là một webserver phát hành năm 2004 bởi Igor Sysoev. Ngày nay nó còn làm được nhiều thứ hơn một webserver
Sau đây là một số thông tin bạn nên biết về NGINX
Bạn đầu mọi người nghĩ rằng Nginx là một phần bổ trợ của ApacheTrước đây NGINX được sử dụng phần lớn để chạy các files tĩnh, nhưng ngày nay nó đã phát triển trở thành một webserver hoàn chỉnh và có thể vận hành mọi nhiệm vụ của máy chủNgày nay Nginx thường dùng như một reverse proxy, load balâncer, mail proxy và HTTP cachingCả Apache và Nginx đều là những web server phổ biến cho Linux. Hiện nay, chúng đang vận hành hơn 50% lưu lượng của web toàn cầu
Kiến trúc cơ bảnKhi so sánh Apache với Nginx, sự khác biệt cơ bản là ở kiến trúc thiết kế của chúng. Có nghĩa là sự khác nhau giữa cách mà chúng xử lí các kết nối và lưu lượng và phản hồi với các luồng lưu lượng ở các tình huống khác nhau
Apache thì đi theo hướng quy trình và sẽ tạo ra một luồng mới cho một requests mới còn Nginx đi theo hướng sự kiện cho phép xử lí nhiều requests trên một luồng
Hiệu năngVới nội dung tĩnh
Apache: Phân phối nội dung dựa trên từng files
Nội dung tĩnh thường là các tệp được lưu trữ trên đĩa trên máy chủ, ví dụ: tệp CSS, tệp JavaScripts hoặc hình ảnh. Apache xử lý nội dung tĩnh bằng phương pháp dựa trên tệp thông thường của nó.
Bạn đang xem: So sánh apache và nginx
NGINX: Ông vua của xử lí nội dung tĩnh
Kiến trúc thiết kế của Nginx được thiết kế để xử lí nội dung tĩnh một cách nhanh chóng hơn
Khi kiểm tra với 1000 kết nối đồng thời thì Nginx chạy nhanh hơn Apache 2.5 lần
Nginx phục vụ các tài nguyên tĩnh mà PHP không cần biết về điều này. Mặt khác, Apache xử lý tất cả các yêu cầu đó với chi phí đắt đỏ đó.
Xem thêm: Baemin - Baemin For Android
Điều này làm cho Nginx hiệu quả hơn và ít đòi hỏi tài nguyên hệ thống hơn.Nginx phục vụ các nội dung tĩnh không liên quan tới PHP. Mặt khác, Apache xử lí tất cả các yêu cầu đó mà không để ý tới hiệu năng. Điều này khiên Nginx hiệu quả hơn và không phụ thuộc vào nguồn lực của hệ thống
Ảnh dưới cho thấy số request chứa nội dung tĩnh mà 2 webserver xử lí mỗi giây. Nginx đã vượt qua Apache tại đây

Với nội dung động
Apache: Xử lí nội dung động trong máy chủ
Apache có thể xử lí nội dung động trong webserver mà không cần tới một yếu tố bên ngoài
Nếu nói về hiệu năng, gần như 2 webserver có tốc độ tương đương. Dưới đây là sự so sánh của số request chứa nội dung động mà 2 webserver xử lí mỗi giây.

Nginx: Không xử lí nội dung động
Khi nói về nội dung động. Nginx không thể xử lí chúng với Webserver như cách mà Apache làm, nó sẽ đưa sang một proccess bên ngoài (Như PHP-FPM) để thực thi
Nginx chờ cho nội dung được xử lí xong quay trở lại và gửi lại cho client. Nginx có thể xử lí nội dung động khi đi kèm với SCGI handlers hoặc module FastCGI. Bạn có thể xem ảnh dưới để biết thêm

Apache
Hỗ trợ tất cả những hệ thống dựa trên Unix như Linux hoặc BSDHỗ trợ đầy đủ MS-WindowsNginx
Hỗ trợ phần lớn những hệ thống dựa trên UnixHỗ trợ một phần MS-WindowsCấu hình riêng lẻ/tập trungApache
Cho phép cấu hình riêng cho từng thư mục sử dụng file .htaccessNginx
Không cho phép cấu hình thêmDiễn giải RequestApache Sử dụng đường dẫn các file trong hệ thống

Nginx Sử dụng các URI

Apache: Hơn 60 Module được cài sẵn (Sẵn sàng để bật/tắt)
Nginx: Cho phép cài thêm Module của bên thứ 3
Nginx có vẻ nhẹ nhàng hơn Apache vì không đi kèm quá nhiều Module chưa cần thiếtSự linh hoạtApache: Hỗ trợ tuỳ biến server thông qua các Dynamic Modules
Nginx: Chưa linh hoạt bằng Apache
Sự bảo mậtApache: Bảo mật tốt
Nginx: Bảo mật tốt hơn với codebase nhỏ hơn
Hỗ trợCả 2 đều có hỗ trợ thông qua mailing lists, IRC, Stack Overflow, và một forum.So sánh cơ bản Apache và NginxKhi nào chọn Apache hay NginxChọn Apache khi
Bạn cần file .htaccess
Người dùng thông thường, đương nhiên, ko có quyền sửa file cấu hình chínhDùng .htaccess bạn có thể chỉnh sửa những cài đặt riêng cho mỗi thư mục khác nhauỞ môi trường shared hosting, Apache thực hiện tốt hơn vì hỗ trợ .htaccess riêng cho từng thư mụcKhi cần sự linh hoạt của các modules
Chọn NGINX khi
Bạn cần xử lí nhiều nội dung tĩnh hơn
Server bạn có mức lưu lượng cao
Hoặc sử dụng kết hợp cả hai: Được mà
