Thứ Tư, 26/08/2026, 17:00 (GMT+0)

Apache là gì? Tổng quan về Apache Web Server

Quay lại Trang chủ Blog
Trên trang này

Bạn có biết điều gì giúp một website phản hồi chỉ trong vài giây sau khi bạn nhập URL và nhấn Enter? Đó chính là web server - phần mềm tiếp nhận yêu cầu từ trình duyệt, xử lý dữ liệu và gửi nội dung của website trở lại người dùng. Trong số các web server phổ biến hiện nay, Apache là một trong những giải pháp được sử dụng rộng rãi nhờ tính ổn định, mã nguồn mở và khả năng tùy biến cao. Bài viết sẽ giải đáp Apache là gì, ưu điểm nhược điểm, hướng dẫn cách cài đặt và cấu hình chi tiết nhất. 

Apache là gì?

Apache là phần mềm web server mã nguồn mở (open-source) và miễn phí do Apache Software Foundation (ASF) phát triển. Apache có nhiệm vụ tiếp nhận các yêu cầu HTTP/HTTPS từ trình duyệt, xử lý chúng và trả về nội dung của website cho người dùng.

Đây là một trong những web server phổ biến nhất thế giới, được sử dụng để vận hành hàng triệu website trên nhiều hệ điều hành như Linux, Windows và macOS. Apache cũng là một thành phần quan trọng trong LAMP Stack (Linux, Apache, MySQL, PHP) – bộ công nghệ được sử dụng rộng rãi để phát triển và lưu trữ các ứng dụng web.

apache-la-gi-000.jpg

Một số điểm nổi bật của Apache HTTP Server: 

  • Hỗ trợ đa nền tảng vì có thể chạy trên Linux, Windows và macOS.
  • Thiết kế mô-đun: Hỗ trợ mở rộng tính năng thông qua các module.
  • Hỗ trợ nội dung động: Hỗ trợ PHP, Python, Perl,...
  • Virtual Hosting: Cho phép lưu trữ nhiều website trên cùng một máy chủ.
  • Hỗ trợ bảo mật: Hỗ trợ SSL/TLS, xác thực (Authentication) và kiểm soát truy cập (Access Control).
  • Tùy chỉnh cấu hình: Cho phép sử dụng các tệp .htaccess.

Apache hoạt động như thế nào? 

Apache HTTP Server hoạt động theo mô hình client - server. Khi người dùng truy cập một website, trình duyệt sẽ gửi yêu cầu HTTP hoặc HTTPS đến máy chủ đang chạy Apache. Apache tiếp nhận yêu cầu, xác định tài nguyên cần truy cập, xử lý hoặc chuyển tiếp yêu cầu đến ứng dụng backend khi cần, sau đó gửi phản hồi tương ứng về trình duyệt để hiển thị nội dung cho người dùng. 

Cụ thể, quy trình hoạt động của Apache diễn ra như sau: 

  • Người dùng gửi yêu cầu: Khi nhập URL hoặc nhấp vào một liên kết, trình duyệt sẽ gửi yêu cầu HTTP hoặc HTTPS đến máy chủ.
  • Apache tiếp nhận yêu cầu: Apache lắng nghe các kết nối trên cổng 80 (HTTP) hoặc cổng 443 (HTTPS), sau đó tiếp nhận và phân tích yêu cầu từ trình duyệt.
  • Xử lý yêu cầu: Apache xác định tài nguyên mà người dùng yêu cầu. Nếu là nội dung tĩnh như HTML, CSS, JavaScript hoặc hình ảnh, Apache sẽ truy xuất trực tiếp từ máy chủ. Nếu là nội dung động, Apache sẽ chuyển yêu cầu đến ứng dụng hoặc ngôn ngữ phía máy chủ để xử lý.
  • Trả kết quả về trình duyệt: Sau khi xử lý hoàn tất, Apache gửi phản hồi HTTP cùng dữ liệu của trang web về trình duyệt.
  • Hiển thị trang web: Trình duyệt nhận dữ liệu và hiển thị nội dung hoàn chỉnh cho người dùng.

Nhờ cơ chế này, Apache có thể xử lý đồng thời nhiều yêu cầu từ người dùng, đảm bảo website và ứng dụng web luôn sẵn sàng phục vụ các kết nối đến từ Internet.

Các tính năng nổi bật của Apache 

Apache cung cấp nhiều tính năng nổi bật giúp đáp ứng nhu cầu triển khai và quản lý website của người dùng, cụ thể: 

  • Phục vụ nội dung tĩnh và động: Hỗ trợ phân phối các tệp HTML, CSS, JavaScript, hình ảnh cũng như xử lý nội dung động thông qua PHP, Perl, Python và các công nghệ phía máy chủ khác.
  • Kiến trúc module linh hoạt: Cho phép mở rộng chức năng bằng các module như mod_ssl, mod_rewrite, mod_proxy hoặc mod_deflate mà không cần thay đổi mã nguồn lõi.
  • Hỗ trợ HTTP/2 và HTTPS: Apache hỗ trợ HTTP/2 thông qua module phù hợp và hỗ trợ HTTPS bằng SSL/TLS, giúp mã hóa dữ liệu truyền giữa client và server.
  • Cấu hình bằng .htaccess: Cho phép thiết lập chuyển hướng URL, phân quyền truy cập, xác thực người dùng và nhiều cấu hình khác theo từng thư mục.
  • Virtual Host: Hỗ trợ lưu trữ nhiều website hoặc tên miền trên cùng một máy chủ.
  • URL Rewriting: Hỗ trợ viết lại URL thông qua mod_rewrite, giúp tạo đường dẫn thân thiện và dễ quản lý.
  • Reverse Proxy và Load Balancing: Có thể hoạt động như reverse proxy hoặc cân bằng tải để phân phối lưu lượng truy cập giữa nhiều máy chủ.
  • Ghi nhật ký và giám sát: Tự động tạo Access Log và Error Log, hỗ trợ theo dõi truy cập, giám sát hoạt động và xử lý sự cố.

Ưu và nhược điểm của Apache 

Trước khi quyết định triển khai Apache, bạn nên nắm rõ những ưu điểm và hạn chế của nền tảng này để đánh giá mức độ phù hợp với nhu cầu thực tế.

Ưu điểm

Nhược điểm

  • Miễn phí và mã nguồn mở: Apache được phát hành theo Apache License, cho phép sử dụng, chỉnh sửa và phân phối miễn phí, kể cả trong môi trường thương mại.
  • Linh hoạt và dễ tùy biến: Kiến trúc module cho phép bổ sung hoặc loại bỏ chức năng theo nhu cầu, phù hợp với nhiều mô hình triển khai khác nhau.
  • Tương thích với nhiều nền tảng và công nghệ: Hoạt động trên Windows, Linux, macOS, Unix và hỗ trợ nhiều ngôn ngữ lập trình như PHP, Python, Perl hay Java.
  • Ổn định và đáng tin cậy: Được phát triển từ năm 1995 và sử dụng rộng rãi trong nhiều hệ thống sản xuất (production), Apache có độ ổn định cao và được cập nhật bảo mật thường xuyên.
  • Hệ sinh thái và cộng đồng lớn: Apache sở hữu tài liệu chính thức đầy đủ cùng cộng đồng người dùng đông đảo, giúp việc triển khai, bảo trì và xử lý sự cố trở nên thuận tiện hơn.
  • Tiêu tốn nhiều tài nguyên: Mô hình xử lý theo process/thread khiến Apache sử dụng nhiều RAM và CPU hơn khi phải phục vụ nhiều kết nối đồng thời.
  • Hiệu năng không tối ưu khi lưu lượng truy cập rất lớn: Với các website có hàng nghìn kết nối đồng thời hoặc phục vụ nhiều nội dung tĩnh, Apache thường không tối ưu bằng các web server hướng sự kiện như Nginx.
  • Cấu hình tương đối phức tạp: Apache có nhiều tệp cấu hình và tùy chọn nâng cao, khiến việc tối ưu hoặc khắc phục sự cố có thể khó khăn đối với người mới.
  • Cần tối ưu để đạt hiệu suất cao: Nếu không cấu hình phù hợp (MPM, cache, module...), hiệu suất của Apache có thể chưa đáp ứng tốt các hệ thống có lưu lượng truy cập lớn.

So sánh Apache và các Web Server khác

Bên cạnh Apache, còn có nhiều web server phổ biến như Nginx, LiteSpeed và Microsoft IIS. Để có cái nhìn khách quan và lựa chọn giải pháp phù hợp, hãy cùng so sánh Apache với các web server phổ biến hiện nay.

Tiêu chí

Apache

Nginx

LiteSpeed

Microsoft IIS

Loại phần mềm 

Mã nguồn mở, miễn phíMã nguồn mở, miễn phí (có bản Nginx Plus)Có bản miễn phí (OpenLiteSpeed) và bản thương mạiThương mại, đi kèm Windows Server

Hiệu năng

Tốt với website vừa và nhỏ, ứng dụng độngRất cao, đặc biệt với website có nhiều kết nối đồng thời và nội dung tĩnhRất cao, tối ưu cho WordPress và PHPTốt trong môi trường Windows và ứng dụng .NET

Khả năng xử lý đồng thời

Tốt nhưng tiêu tốn nhiều tài nguyên hơn khi lưu lượng truy cập tăng caoRất tốt nhờ kiến trúc xử lý bất đồng bộ (event-driven)Rất tốt, sử dụng ít tài nguyênTốt trong hệ sinh thái Windows

Khả năng cấu hình

Rất linh hoạt, hỗ trợ nhiều module và tệp .htaccessCấu hình tập trung, không hỗ trợ .htaccessTương thích với .htaccess, tích hợp sẵn nhiều tính năng tối ưuQuản lý qua giao diện GUI và tệp web.config

Hệ điều hành hỗ trợ

Linux, Unix, Windows, macOSLinux, Unix, Windows, macOSLinux, FreeBSD Windows

Phù hợp với

Website PHP, CMS (WordPress, Joomla, Drupal), môi trường cần tùy chỉnh caoWebsite có lưu lượng truy cập lớn, reverse proxy, load balancing, microservicesWebsite WordPress, hosting hiệu năng caoỨng dụng ASP.NET và hệ sinh thái Microsoft

Ứng dụng của Apache trong thực tế

Nhờ khả năng hoạt động ổn định, hỗ trợ mở rộng và tương thích với nhiều công nghệ web, Apache được triển khai trong nhiều loại môi trường khác nhau. Dưới đây là một số trường hợp sử dụng Apache phổ biến trong thực tế:

  • Lưu trữ website và ứng dụng web: Apache là lựa chọn phổ biến để vận hành các website tĩnh và động, đặc biệt là các ứng dụng sử dụng PHP, Python, Perl hoặc CMS như WordPress, Drupal và Joomla.
  • Triển khai hệ thống doanh nghiệp: Apache được sử dụng để chạy các cổng thông tin nội bộ (portal), hệ thống CRM, ERP, thương mại điện tử và nhiều ứng dụng web phục vụ hoạt động của doanh nghiệp.
  • Làm máy chủ reverse proxy và cân bằng tải: Kết hợp với các module mở rộng, Apache có thể hoạt động như reverse proxy hoặc load balancer để phân phối lưu lượng truy cập giữa nhiều máy chủ, giúp tăng hiệu năng và khả năng chịu tải.
  • Xây dựng mạng nội bộ (Intranet): Nhiều tổ chức triển khai Apache để lưu trữ website nội bộ, tài liệu và các ứng dụng chỉ dành cho nhân viên, đồng thời kiểm soát quyền truy cập thông qua cơ chế xác thực và phân quyền.
  • Phục vụ môi trường phát triển và kiểm thử: Apache thường được tích hợp trong các bộ công cụ như LAMP (Linux, Apache, MySQL, PHP) hoặc XAMPP để xây dựng môi trường phát triển, kiểm thử và triển khai ứng dụng web.

Cách cài đặt Apache cơ bản 

Cài đặt Apache trên Windows 

Bước 1: Truy cập trang tải xuống chính thức của Apache Lounge tại https://www.apachelounge.com/download/ 

apache-la-gi-1.jpg

Lưu ý: Trước khi cài đặt, hãy đảm bảo máy đã cài Microsoft Visual C++ Redistributable theo yêu cầu của phiên bản Apache. 

Bước 2: Sau khi tải xuống hoàn tất, thực hiện giải nén tệp vào thư mục mong muốn. Ví dụ ở đây là thư mục Apache24 giải nén vào ổ đĩa C.

apache-la-gi-2.jpg

Bạn mở thư mục C:\Apache24\bin sau đó chạy tệp httpd.exe để khởi động Apache. 

apache-la-gi-3.jpg

Để kiểm tra, bạn mở trình duyệt và truy cập http://localhost. Nếu màn hình hiển thị thông báo "It works!" hoặc "Apache HTTP Server Test Page" thì có nghĩa là Apache đã được cài đặt thành công. 

apache-la-gi-4.jpg

Bước 3: Sau khi cài đặt hoàn tất, bạn có thể đăng ký Apache chạy dưới dạng Windows Service để máy chủ tự động quản lý và khởi động cùng hệ thống.

Mở Command Prompt với quyền Run as administrator, sau đó di chuyển đến thư mục C:\Apache24\bin và chạy một trong các lệnh sau:

Đăng ký dịch vụ với tên mặc định: 

httpd -k install

Hoặc đăng ký với tên dịch vụ tùy chỉnh: 

httpd -k install -n "ten-dich-vu"

Sau khi đăng ký, bạn có thể quản lý dịch vụ thông qua Control Panel, chọn Administrative Tools, chọn Services hoặc sử dụng các lệnh: 

net start Apache2.4
net stop Apache2.4

Để gỡ dịch vụ khỏi Windows, sử dụng lệnh:

sc delete Apache2.4

Lưu ý: Cách gỡ Windows Service có thể dùng lệnh này: 

httpd.exe -k uninstall

Hoặc với service tùy chỉnh:

httpd.exe -k uninstall -n "ten-dich-vu"

Cài Apache trên Ubuntu 

Bước 1: Mở Terminal bằng tổ hợp phím Ctrl + Alt + T, sau đó cập nhật danh sách các gói phần mềm để đảm bảo hệ thống sử dụng phiên bản mới nhất: 

sudo apt update

Bước 2: Cài đặt Apache bằng lệnh sau. Hệ thống sẽ tự động tải xuống và cài đặt Apache cùng các thành phần phụ thuộc cần thiết: 

sudo apt install apache2
apache-la-gi-5.jpg

Bước 3: Sau khi cài đặt hoàn tất, khởi động dịch vụ Apache bằng lệnh: 

sudo systemctl start apache2

Để Apache tự động khởi động mỗi khi hệ thống được bật, bạn thiết lập bằng lệnh: 

sudo systemctl enable apache2

Bước 4: Kiểm tra trạng thái hoạt động của Apache bằng lệnh: 

sudo systemctl status apache2

Nếu kết quả hiển thị active (running), điều đó cho thấy Apache đã được cài đặt và đang hoạt động bình thường. 

Bước 5: Mở trình duyệt web và truy cập một trong các địa chỉ sau để xác minh cài đặt: 

http://localhost

hoặc:

http://<địa_chỉ_IP_máy_chủ>

Nếu xuất hiện trang mặc định của Apache với thông báo "It works!" hoặc "Apache2 Ubuntu Default Page", quá trình cài đặt đã thành công. 

apache-la-gi-6.jpg

Cài Apache trên CentOS 

Bước 1: Mở Terminal hoặc kết nối đến máy chủ CentOS thông qua SSH.

Bước 2: Cài đặt Apache bằng trình quản lý gói của hệ điều hành:

sudo yum install httpd
apache-la-gi-7.jpg

Bước 3: Sau khi cài đặt hoàn tất, khởi động dịch vụ Apache bằng lệnh:

sudo systemctl start httpd

Để Apache tự động khởi động cùng hệ thống sau mỗi lần khởi động máy, thực hiện:

sudo systemctl enable httpd

Bước 4: Kiểm tra trạng thái hoạt động của Apache bằng lệnh:

sudo systemctl status httpd

Nếu kết quả hiển thị active (running), nghĩa là Apache đã được cài đặt và khởi động thành công.

Bước 5: Mở trình duyệt và truy cập:

http://localhost

hoặc:

http://<địa_chỉ_IP_máy_chủ>

Nếu xuất hiện trang mặc định của Apache (Testing 123 hoặc Apache HTTP Server Test Page, tùy phiên bản CentOS), quá trình cài đặt đã hoàn tất

apache-la-gi-8.png

Hướng dẫn cấu hình Apache 

Sau khi cài đặt, bạn có thể cấu hình Apache để thay đổi cổng truy cập, thư mục chứa website, thiết lập Virtual Host, kích hoạt SSL/TLS hoặc quản lý các module. Dưới đây là những cấu hình cơ bản được sử dụng phổ biến nhất.

Cấu hình tệp httpd.conf 

Đây là file cấu hình chính của Apache, dùng để thiết lập các thông số hoạt động của web server.

Vị trí file cấu hình:

  • Linux: /etc/httpd/conf/httpd.conf hoặc /etc/apache2/apache2.conf (Ubuntu/Debian)
  • Windows: C:\Apache24\conf\httpd.conf

Một số cấu hình thường gặp gồm:

  • Thiết lập cổng Port: Theo mặc định, Apache thường sử dụng cổng 80 (HTTP)443 (HTTPS). Để thay đổi, bạn có thể chỉnh sửa dòng lệnh Listen 80 thành cổng mong muốn sau đó khởi động lại. 
  • Thay đổi thư mục chứa website (DocumentRoot): Bạn chỉ cần chỉnh sửa dòng DocumentRoot "/var/www/html" thành thư mục mong muốn.
  • Thiết lập bảo mật: Ngoài các cấu hình trên, bạn cũng có thể cấu hình thêm các tùy chọn như ẩn thông tin phiên bản Apache, thiết lập nhật ký (log), thời gian chờ (Timeout) hoặc giới hạn kích thước request tùy theo nhu cầu sử dụng. 

Cấu hình kiểm soát truy cập (Access Control)

Apache cho phép giới hạn quyền truy cập vào từng thư mục dựa trên địa chỉ IP hoặc các quy tắc xác thực. 

<Directory "/var/www/html/secure">
   Options None
   AllowOverride None
   Require ip 192.168.1.0/24
</Directory>

Đối với Apache 2.4 trở lên, nên sử dụng chỉ thị Require. Các chỉ thị Allow from và Deny from chủ yếu dùng để tương thích với các phiên bản Apache cũ.

Cấu hình SSL/TLS (HTTPS) 

Để kích hoạt HTTPS, trước tiên cần cài đặt hoặc kích hoạt module mod_ssl.

  • Trên Ubuntu: sudo apt install libapache2-mod-ssl hoặc sudo a2enmod ssl
  • Trên CentOS/RHEL: sudo yum install mod_ssl

Sau đó, cấu hình chứng chỉ SSL trong Virtual Host của cổng 443, ví dụ: 

<VirtualHost *:443>
   SSLEngine on
   SSLCertificateFile /etc/ssl/certs/example.crt
   SSLCertificateKeyFile /etc/ssl/private/example.key
</VirtualHost>

Sau khi hoàn tất, khởi động lại Apache để áp dụng cấu hình mới.

Cấu hình Virtual Host 

Virtual Host cho phép chạy nhiều website trên cùng một máy chủ Apache thông qua tên miền hoặc địa chỉ IP. Mỗi website sẽ được cấu hình trong một khối <VirtualHost> riêng.

Ví dụ:

<VirtualHost *:80>
   ServerName example.com
   DocumentRoot /var/www/example.com
</VirtualHost>
<VirtualHost *:80>
   ServerName another-example.com
   DocumentRoot /var/www/another-example.com
</VirtualHost>

Trên Ubuntu/Debian, các cấu hình Virtual Host thường được lưu trong thư mục sites-available. Sau khi thêm hoặc chỉnh sửa cấu hình, hãy kích hoạt website (nếu cần) và khởi động lại Apache để các thay đổi có hiệu lực.

Kích hoạt hoặc vô hiệu hóa module 

Apache hỗ trợ nhiều module mở rộng để bổ sung các tính năng như rewrite URL, SSL/TLS hoặc reverse proxy.

  • Kích hoạt module (Ubuntu): sudo a2enmod module_name
  • Vô hiệu hóa module (Ubuntu): sudo a2dismod module_name

Sau khi thay đổi module, khởi động lại Apache để áp dụng cấu hình:

sudo systemctl restart apache2

Đến đây, chắc hẳn bạn đã có cái nhìn toàn diện về Apache là gì cũng như lý do vì sao đây vẫn là một trong những web server phổ biến nhất hiện nay. Với khả năng tùy biến cao, hỗ trợ đa nền tảng và hệ sinh thái module phong phú, Apache vẫn đáp ứng tốt nhiều nhu cầu triển khai từ website cá nhân đến hệ thống doanh nghiệp. 

#Cloud Server
#Cloud Server
Sovereign Cloud không chỉ là đặt máy chủ trong nước. Với bối cảnh pháp lý dữ liệu mới tại Việt Nam, đây đang trở thành bài toán hạ tầng quan trọng cho doanh nghiệp Việt và doanh nghiệp nước ngoài hoạt động tại Việt Nam
Sovereign Cloud - Đám mây chủ quyền là gì? Và vì sao doanh nghiệp hoạt động tại Việt Nam nên quan tâm từ bây giờ?
Tiếp tục đọc