Đ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
Mục lục
Thông tin cơ bản
Apache 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 ASF
- Phần lớn chạy trên Linux, Apache đang vận hành 46% website khắp thế giới
- Là một phần của gói LAMP (Linux, Apache, MySQL, PHP)
NGINX 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 Apache
- Trướ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 caching
Cả 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ản
Khi 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ăng
Vớ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ó.
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 đỏ đó. Đ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
Hệ điều hành hỗ trợ
Apache
- Hỗ trợ tất cả những hệ thống dựa trên Unix như Linux hoặc BSD
- Hỗ trợ đầy đủ MS-Windows
Nginx
- Hỗ trợ phần lớn những hệ thống dựa trên Unix
- Hỗ trợ một phần MS-Windows
Cấu hình riêng lẻ/tập trung
Apache
- Cho phép cấu hình riêng cho từng thư mục sử dụng file .htaccess
Nginx
- Không cho phép cấu hình thêm
Diễn giải Request
Apache Sử dụng đường dẫn các file trong hệ thống
Nginx Sử dụng các URI
Các Module tính năng
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ết
Sự linh hoạt
Apache: 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ật
Apache: 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à Nginx
Khi nào chọn Apache hay Nginx
Chọ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ính
- Dù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ục
Máy chủ vật lý
4 Lợi Ích Thiết Thực Mà Máy Chủ Vật Lý Mang Lại Cho Doanh Nghiệp
Trong thời đại chuyển đổi số mạnh mẽ như hiện nay, việc đầu tư vào [...]
Giải pháp
Cách Phòng Chống DDoS Cho Website, VPS, và Server Hiệu Quả
Các cuộc tấn công DDoS (Distributed Denial of Service) là một mối đe dọa lớn [...]
Chưa được phân loại portal portal cloudzone Về Portal
Mã đăng nhập Portal Cloudzone là gì? 3 cách lấy mã đăng nhập
Ngày nay, khi công nghệ số phát triển mạnh mẽ, việc bảo mật thông tin [...]
Cloud hosting Blog
So sánh Cloud Hosting cPanel, DirectAdmin và Plesk
Khi lựa chọn dịch vụ Cloud Hosting để lưu trữ website hoặc ứng dụng, một [...]
Cloud VPS
[2024] Kinh Nghiệm Chọn VPS Treo Game Không Lo Gián Đoạn
Với sự phát triển nhanh chóng của các trò chơi trực tuyến, việc duy trì [...]
Blog
Tuyển Đại lý dịch vụ Cloud – Chiết khấu đến 35%
Cloudzone tuyển đại lý dịch vụ Cloud, Data Center với lợi nhuận không giới hạn, [...]