Chuyển đến nội dung chính
Giảm 50% tất cả các gói, có thời hạn. Khởi điểm từ $2.48/mo
12 min left
Ứng dụng web và doanh nghiệp

Apache và NGINX: máy chủ web nào tốt nhất cho WordPress?

Ivarr Vinter Bởi Ivarr Vinter 12 phút đọc Đã cập nhật bởi Chike 17d ago
Apache vs. NGINX: the Apache feather logo and the NGINX hexagon logo facing each other across a lightning split, on a dark Cloudzy-branded backdrop

Nếu bạn chạy WordPress trên VPS của riêng mình, cả Apache và NGINX đều phục vụ site tốt, nhưng chúng đánh đổi theo những cách khác nhau. NGINX thường là lựa chọn mặc định tốt hơn cho mức đồng thời cao, phân phối tệp tĩnh và HTTP/3 tùy chọn. Apache dễ hơn khi stack WordPress của bạn phụ thuộc vào .htaccess hoặc các module riêng của Apache.

Bài so sánh Apache và NGINX này tập trung vào những khác biệt quan trọng với WordPress: kiến trúc, cách xử lý PHP, cấu hình, HTTP/3, và liệu chạy cả hai có đáng với phần phức tạp tăng thêm hay không. LiteSpeed và Caddy nằm ngoài phạm vi.

Câu trả lời ngắn: với một VPS WordPress bạn tự quản lý, hãy chọn NGINX làm mặc định. Chọn Apache nếu site hoặc plugin của bạn phụ thuộc nhiều vào .htaccess. Chỉ chạy cả hai khi bạn thực sự cần NGINX ở phía trước mà vẫn giữ được khả năng tương thích với Apache.

Apache là gì?

Apache là phần mềm máy chủ web mã nguồn mở phổ biến, do tổ chức phi lợi nhuận của Mỹ là Apache Software Foundation (ASF) phát triển và duy trì. Nó còn được gọi là Apache HTTP Server và HTTPD.

Trang tải xuống của Apache liệt kê 2.4.68, phát hành vào tháng 6 năm 2026, là bản ổn định hiện tại.

Apache HTTP Server là một máy chủ mã nguồn mở dạng module, hỗ trợ chín muồi cho quy tắc .htaccess theo từng thư mục, nhiều Multi-Processing Module (MPM), reverse proxy, viết lại URL, TLS và các module nạp động. Với WordPress, lợi thế thực tế lớn nhất của nó là khả năng tương thích cấu hình, chứ không phải tốc độ thuần túy.

Những tính năng của Apache quan trọng nhất trong bài so sánh này là các MPM prefork, worker và event; .htaccess; HTTP/2; reverse proxy và cân bằng tải; hỗ trợ FastCGI; module động; viết lại URL; và TLS.

NGINX là gì?

NGINX ("engine x") là một máy chủ web mã nguồn mở, reverse proxy, bộ nhớ đệm nội dung, cân bằng tải, proxy TCP/UDP và proxy thư, ban đầu do Igor Sysoev viết. Các tiến trình worker của nó dùng mô hình hướng sự kiện, được thiết kế để xử lý nhiều kết nối đồng thời với chi phí thấp trên mỗi kết nối.

Trang tải xuống của NGINX lists the 1.30.x stable branch and the 1.31.x mainline branch.

Apache và NGINX: những khác biệt then chốt với WordPress

Apache và NGINX khác nhau rõ nhất ở cách xử lý kết nối, cấu hình, PHP và hỗ trợ giao thức. Hành vi của Apache phụ thuộc nhiều vào MPM mà nó chạy, trong khi NGINX dùng các tiến trình worker hướng sự kiện.

Apache và NGINX: kiến trúc

Sơ đồ so sánh các MPM prefork, worker và event của Apache với một tiến trình worker của NGINX: prefork cấp một tiến trình cho mỗi kết nối, worker giữ kết nối trên một luồng, event chuyển các kết nối keep-alive đang rảnh sang luồng listener, còn NGINX theo dõi nhiều socket từ một vòng lặp sự kiện duy nhất và chỉ giao việc khi kết nối đã sẵn sàng

Mô hình xử lý yêu cầu của Apache phụ thuộc vào MPM bạn chạy. Prefork dựa trên tiến trình, còn worker và event dùng luồng. NGINX dùng các tiến trình worker xây quanh vòng lặp sự kiện. Vì vậy cách so sánh quen thuộc "Apache hướng tiến trình đối lại NGINX hướng sự kiện" là quá đơn giản với một cài đặt Apache 2.4 hiện nay.

MPM event của Apache có thể chuyển các kết nối keep-alive đang rảnh sang luồng listener thay vì giữ một luồng worker cho từng kết nối. Khi số kết nối đồng thời rất lớn, NGINX vẫn thường có chi phí trên mỗi kết nối thấp hơn, nhưng khoảng cách kiến trúc hẹp hơn nhiều so với những so sánh cũ từ thời prefork.

Apache và NGINX: hiệu năng

Lợi thế hiệu năng của NGINX chủ yếu xuất hiện khi mức đồng thời cao và với tải tệp tĩnh. Các worker hướng sự kiện của nó có thể giữ nhiều kết nối mở với chi phí trên mỗi kết nối tương đối thấp. MPM event của Apache thu hẹp khoảng cách đó khá nhiều so với các cấu hình prefork cũ.

Các yêu cầu động của WordPress lại khác. NGINX thường chuyển PHP sang FastCGI, phổ biến nhất là PHP-FPM. Apache cũng có thể dùng PHP-FPM qua FastCGI, hoặc chạy PHP bằng một module của Apache.

Một khi PHP bắt đầu chạy WordPress, mã plugin, truy vấn cơ sở dữ liệu, bộ đệm đối tượng hoặc trang, và số lượng worker PHP có thể quan trọng hơn cả máy chủ web đứng trước. Nếu một plugin chạy cả chục truy vấn nặng cho mỗi request, chuyển từ Apache sang NGINX cũng không sửa được vấn đề gốc.

Apache và NGINX: hỗ trợ HTTP/3 và QUIC

HTTP/3 là phiên bản hiện tại của giao thức và chạy trên QUIC thay vì TCP. Site của bạn có cung cấp được hay không phụ thuộc vào máy chủ web đứng phía trước, và đây là điểm so sánh duy nhất mà hai máy chủ không ngang nhau.

NGINX có module HTTP/3 từ phiên bản 1.25.0. Module này không được biên dịch mặc định, và bản build cần tham số --with-http_v3_module.

Tài liệu module HTTP/3 của NGINX vẫn mô tả module này là "experimental, caveat emptor applies".

Apache 2.4 không kèm module HTTP/3 hay QUIC gốc; phần hỗ trợ giao thức đi kèm dừng ở mod_http2.

Hệ quả thực tế với chủ site: một bản cài Apache 2.4 tiêu chuẩn không cung cấp HTTP/3. Trong môi trường sản xuất, cách khả thi vẫn là kết thúc HTTP/3 tại một reverse proxy hoặc CDN có hỗ trợ HTTP/3 đặt trước Apache. Nếu bạn muốn dùng giao thức này, một lựa chọn là đặt NGINX trước Apache và để NGINX kết thúc các kết nối từ phía client, đúng mô hình được nói tới ở phần dưới.

Apache và NGINX: bảo mật

Không thể nói Apache hay NGINX "an toàn hơn" một cách tuyệt đối. Cả hai đều là dự án trưởng thành, được bảo trì bảo mật tích cực, và độ an toàn của một hệ thống chạy thật phụ thuộc nhiều hơn vào việc vá lỗi, các module được bật, cấu hình TLS, kiểm soát truy cập, giới hạn tốc độ và ứng dụng phía sau máy chủ.

So sánh có ích là về bề mặt tấn công và cấu hình, chứ không phải tìm ra kẻ thắng tuyệt đối. Hãy tắt những module và endpoint bạn không cần, giữ máy chủ luôn được vá, và siết chặt stack WordPress phía sau.

Apache và NGINX: cấu hình

Các tệp .htaccess theo thư mục của Apache hoạt động khi AllowOverride cho phép. Điều đó có ích với WordPress, vì các quy tắc viết lại có thể thay đổi mà không cần sửa cấu hình toàn cục của máy chủ.

Sự tiện lợi đó có cái giá của nó. Tài liệu chính thức của Apache khuyến nghị đặt các quy tắc trong cấu hình chính của máy chủ khi bạn có quyền root: tệp .htaccess được kiểm tra trong lúc xử lý yêu cầu, và bật chúng lên kéo theo cả cân nhắc về hiệu năng lẫn bảo mật.

NGINX không có thứ tương đương .htaccess. Cấu hình của nó tập trung, nên WordPress không thể tự ghi các quy tắc viết lại ở cấp máy chủ giúp bạn. Quy tắc permalink và các chỉ thị máy chủ mà plugin yêu cầu phải do quản trị viên thêm vào cấu hình NGINX rồi nạp lại.

Apache và NGINX: module và khả năng mở rộng

Apache hỗ trợ Dynamic Shared Object (DSO) đã rất chín: module có thể biên dịch riêng rồi nạp bằng LoadModule. NGINX cũng hỗ trợ module nạp động qua load_module, nhưng tính tương thích nhị phân với phiên bản NGINX đang cài và cấu hình build của nó quan trọng hơn khi bạn dùng module bên thứ ba ít phổ biến.

Vì vậy Apache có lợi thế nếu bạn phụ thuộc vào các module bên thứ ba ít gặp. Với hosting WordPress thông thường, khác biệt đó thường ít quan trọng hơn .htaccess, cách xử lý PHP và bộ công cụ bạn đang dùng.

Apache và NGINX: hỗ trợ nền tảng

Apache chạy trên Linux, Windows, macOS và nhiều hệ thống kiểu Unix. NGINX cũng có mặt trên các nền tảng chính, nhưng bản dựng Windows gốc của nó có những hạn chế đáng kể. NGINX vẫn gọi phiên bản Windows là beta, nói rằng không nên kỳ vọng hiệu năng cao hay khả năng mở rộng, lưu ý rằng thực tế chỉ một worker làm việc, và không hỗ trợ UDP hay QUIC. Để chạy NGINX trong môi trường sản xuất, một hệ điều hành kiểu Unix vẫn là lựa chọn thực tế.

Apache và NGINX: xử lý yêu cầu

Apache thường ánh xạ URL của yêu cầu vào hệ thống tệp bên dưới DocumentRoot, đồng thời hệ thống cấu hình của nó cũng có thể áp dụng các location dựa trên URI, các quy tắc viết lại và quy tắc proxy. NGINX trước hết chọn một khối server rồi đến một khối location, chủ yếu dựa vào URI của yêu cầu, sau đó mới quyết định phục vụ tệp hay chuyển yêu cầu lên upstream.

Khác biệt đó ảnh hưởng tới cách bạn viết cấu hình, nhưng tự nó không chứng minh rằng NGINX truyền dữ liệu nhanh hơn.

So sánh nhanh giữa NGINX và Apache

Dưới đây là cách hai máy chủ đứng ở các khía cạnh vừa nêu, cộng thêm hỗ trợ giao thức và phiên bản hiện tại của mỗi bên.

Tiêu chíApacheNGINX
Kiến trúc kết nốiTùy MPM: prefork, worker hoặc eventTiến trình worker hướng sự kiện
Đồng thời cao và tải tĩnhCạnh tranh được với MPM event; chi phí phụ tùy theo tảiThường có chi phí trên mỗi kết nối thấp hơn
PHP cho WordPressFastCGI với PHP-FPM, hoặc một module ApacheFastCGI, phổ biến là PHP-FPM
.htaccessCó, khi AllowOverride cho phépKhông có tương đương
Module độngHỗ trợ DSO đã chínCó hỗ trợ; tương thích nhị phân là điều đáng lưu ý
HTTP/3Không hỗ trợ gốc hay đi kèmModule thử nghiệm từ 1.25.0
WindowsĐược hỗ trợBản dựng gốc là beta và bị giới hạn
Bản phát hành hiện tại2.4.68Stable 1.30.x; mainline 1.31.x

Dùng Apache và NGINX cùng nhau

Sơ đồ NGINX đứng trước Apache: trình duyệt kết nối tới lớp web phía trước qua TLS, HTTP/2 hoặc HTTP/3, lớp này trực tiếp phục vụ tệp tĩnh, CSS, JavaScript, hình ảnh và nội dung đã lưu đệm, rồi chuyển tiếp mọi thứ còn lại sang lớp web phía sau, nơi các quy tắc .htaccess, PHP, WordPress và cơ sở dữ liệu chạy

Có, bạn chạy được cả hai. Một bố trí lai phổ biến đặt NGINX ở phía trước làm reverse proxy hướng về client, còn Apache ở phía sau. NGINX có thể kết thúc TLS và HTTP/2, và kết thúc cả HTTP/3 khi module HTTP/3 thử nghiệm của nó được biên dịch và bật lên. Nó cũng có thể tự phục vụ một số tệp tĩnh trong khi chuyển các yêu cầu ứng dụng sang Apache.

Lưu ý quan trọng là quy tắc thuộc về ai. Một yêu cầu mà NGINX phục vụ trực tiếp sẽ không bao giờ tới Apache, nên các quy tắc .htaccess của Apache không áp dụng cho nó. Hai cấu hình phải thống nhất về viết lại, bộ đệm, chuyển tiếp IP của client, hành vi TLS và server nào phụ trách đường dẫn nào.

Cái giá là bạn đang chạy hai máy chủ web. Hai cấu hình phải khớp với nhau, hai chu kỳ cập nhật phải theo dõi, và thêm một nơi nữa để tìm khi một yêu cầu trả về thứ ngoài dự kiến. Với một site nhỏ đơn lẻ, phần việc thêm này thường lớn hơn lợi ích; nó bắt đầu đáng giá khi bạn muốn HTTP/3 hoặc phân phối tệp tĩnh nhanh hơn mà vẫn giữ hành vi .htaccess mà plugin của bạn cần.

NGINX có dễ hơn Apache không?

Không cái nào dễ hơn trong mọi trường hợp. NGINX dễ hơn nếu bạn thích một cấu hình tập trung và thoải mái chỉnh các khối server. Apache dễ hơn khi WordPress hoặc plugin bên thứ ba trông đợi các quy tắc .htaccess, vì những quy tắc đó hoạt động ở cấp thư mục mà không cần đụng tới cấu hình toàn cục của máy chủ.

Trên một máy chủ bạn kiểm soát, "dễ hơn" chủ yếu quy về việc stack của bạn vốn đã trông đợi mô hình cấu hình nào.

Khi nào nên chọn Apache thay vì NGINX?

Chọn Apache khi stack WordPress của bạn phụ thuộc vào .htaccess, khi plugin hoặc công cụ bảng điều khiển trông đợi các chỉ thị viết lại của Apache, hoặc khi bạn cần một module Apache cụ thể. Giữ Apache trên một site đang chạy tốt cũng là lựa chọn hợp lý: đổi máy chủ web chỉ vì một khoản lợi lý thuyết trong benchmark hiếm khi đáng với sự xáo trộn.

Khi nào nên chọn NGINX thay vì Apache?

Chọn NGINX khi bạn dự kiến có nhiều kết nối đồng thời, muốn một lớp phục vụ tệp tĩnh hoặc reverse proxy mạnh, thích cấu hình tập trung, hoặc muốn giữ lựa chọn bật HTTP/3. Với WordPress, đánh đổi là các quy tắc viết lại và chỉ thị máy chủ riêng của plugin trở thành việc của quản trị viên, thay vì thứ WordPress có thể tự ghi vào .htaccess.

NGINX vs Apache: Server web nào tốt nhất cho WordPress?

Hãy chạy NGINX. Với một site WordPress trên máy chủ bạn kiểm soát, đây là mặc định tốt hơn: chi phí kết nối thấp khi đồng thời cao, phân phối tệp tĩnh hiệu quả, và có sẵn HTTP/3 nếu bạn muốn.

Ngoại lệ là .htaccess, và nó rất đáng kể. WordPress có thể ghi các quy tắc viết lại của Apache khi .htaccess được bật, nhưng không thể sửa cấu hình máy chủ của NGINX. Nếu một plugin trông đợi các chỉ thị viết lại, bảo mật hay bộ đệm, bạn cần hướng dẫn NGINX của plugin đó hoặc một quy tắc tương đương trong khối server, rồi nạp lại NGINX. Nếu bạn không muốn gánh trách nhiệm vận hành ấy, Apache là lựa chọn WordPress dễ hơn. Trên một site có lưu lượng bình thường, PHP, cơ sở dữ liệu và cách lưu đệm nhiều khả năng giới hạn hiệu năng hơn là bản thân máy chủ web.

Bên dưới tất cả những điều này là một giả định: máy chủ phải là của bạn để bạn thay đổi được. Với hosting WordPress được quản lý, máy chủ web là quyết định của nhà cung cấp, và câu trả lời cho câu hỏi này đơn giản là thứ họ đang chạy. Bài so sánh này dành cho người có quyền root trên máy của chính mình.

Nhận VPS WordPress

Khởi chạy VPS WordPress nhanh hơn với triển khai tức thì.

Nhận VPS WordPress

Làm sao biết bạn đang chạy Apache hay NGINX?

Nếu đây là VPS của chính bạn, hãy kiểm tra trực tiếp các dịch vụ đang chạy:

systemctl status nginx
systemctl status apache2   # Debian/Ubuntu
systemctl status httpd     # RHEL/Fedora-family systems

Với một website bạn không kiểm soát, header phản hồi HTTP Server có thể là một manh mối, nhưng không chắc chắn. Một reverse proxy hoặc CDN có thể để lộ phần mềm máy chủ của chính nó thay vì của origin, và header đó cũng có thể bị ẩn hoặc sửa.

Chạy Apache hoặc NGINX trên VPS

Nếu VPS là của bạn, cả hai máy chủ đều dễ chạy. Hãy chọn cấu hình máy cho toàn bộ stack WordPress, chứ không chỉ cho Apache hay NGINX: worker PHP, cơ sở dữ liệu, bộ đệm, lưu lượng và các tác vụ nền thường ngốn nhiều tài nguyên hơn bản thân máy chủ web.

Dù chọn máy chủ nào, cấu hình, cập nhật, TLS, sao lưu và giám sát vẫn là việc của bạn. Chạy cả hai thêm một cấu hình và một luồng cập nhật nữa, nên chỉ dùng mô hình lai khi bạn có lý do cụ thể.

NGINX VPS của Cloudzy là một VPS Linux bạn tự quản lý với toàn quyền root, nên cấu hình máy chủ vẫn thuộc về bạn.

Image Apache HTTP Server trong marketplace của chúng tôi cài đặt theo cách tương tự, chỉ một cú nhấp, nên dựng bất kỳ máy chủ nào, hoặc cả hai, không phải bắt đầu bằng việc biên dịch từ mã nguồn.

Câu hỏi thường gặp

Apache có tốt hơn NGINX không?

Không cái nào tốt hơn một cách tuyệt đối. NGINX thường là mặc định mạnh hơn khi bạn quan tâm tới mức đồng thời cao, phân phối tệp tĩnh, reverse proxy hoặc HTTP/3. Apache thường dễ hơn khi stack WordPress của bạn phụ thuộc vào .htaccess hoặc các module riêng của Apache.

Vì sao NGINX nhanh hơn Apache?

NGINX có thể xử lý nhiều kết nối ngay trong vòng lặp sự kiện của từng worker, nhờ đó giữ chi phí trên mỗi kết nối ở mức thấp khi đồng thời cao. MPM event của Apache cũng xử lý kết nối bất đồng bộ, nên khoảng cách nhỏ hơn những gì các so sánh cũ với prefork gợi ý. Với WordPress, PHP, truy vấn cơ sở dữ liệu và bộ đệm có thể quan trọng hơn khác biệt giữa hai máy chủ web.

Nên dùng Apache hay NGINX cho WordPress?

Với một VPS WordPress bạn tự quản lý, NGINX là mặc định rất ổn nếu bạn thoải mái tự quản các quy tắc trong khối server. Chọn Apache nếu bạn dựa vào .htaccess hoặc các plugin trông đợi quy tắc viết lại của Apache và muốn chúng hoạt động với ít thao tác cấu hình máy chủ thủ công hơn.

Vì sao Apache vẫn được dùng?

Apache vẫn được dùng rộng rãi nhờ hệ sinh thái module, khả năng hỗ trợ .htaccess, bộ công cụ chín muồi, hỗ trợ nhiều nền tảng và tính tương thích với các quy trình hosting cũng như bảng điều khiển được xây quanh nó.

Apache và apache2 khác nhau thế nào?

Trên Debian và Ubuntu, apache2 là tên gói và tên dịch vụ của Apache HTTP Server. Các hệ thống thuộc dòng RHEL và Fedora thường gọi dịch vụ đó là httpd. Đây không phải hai máy chủ web khác nhau: cả hai đều chỉ Apache HTTP Server. Nhánh ổn định hiện tại của Apache là 2.4, với 2.4.68 là bản mới nhất.

Apache có hỗ trợ HTTP/3 không?

Không hỗ trợ sẵn. Apache HTTP Server 2.4 không đi kèm module HTTP/3 hay QUIC; phần hỗ trợ giao thức đi kèm dừng ở HTTP/2. Nếu cần HTTP/3 trong môi trường sản xuất, bạn có thể kết thúc nó tại một reverse proxy hoặc CDN hỗ trợ HTTP/3 đặt trước Apache.

Chia sẻ

Thảo luận

Bình luận

Đăng nhập để tham gia thảo luận.

Thêm bài viết từ blog

Tiếp tục đọc.

Sẵn sàng triển khai? Từ $2.48/tháng.

Cloud độc lập, từ 2008. AMD EPYC, NVMe, 40 Gbps. Hoàn tiền trong 14 ngày.