Apache là gì? 5 bước cài đặt và cấu hình Apache Web Server

  • Home
  • Blog
  • Apache là gì? 5 bước cài đặt và cấu hình Apache Web Server
DateTh9 15, 2025

Rate this post

Bạn mới bắt đầu tìm hiểu về lập trình web hoặc quản trị hệ thống và thường nghe đến Apache? Bạn có thắc mắc Apache là gì và vai trò của nó trong việc vận hành website như thế nào? Tại Thuê Máy Chủ Giá Rẻ, chúng tôi sẽ giải thích chi tiết từ khái niệm cơ bản đến cách hoạt động thực tế của máy chủ HTTP Apache. Bài viết cũng hướng dẫn cài đặt, cấu hình và so sánh Apache với các web server khác để bạn có cái nhìn toàn diện.

MỤC LỤC

Apache là gì?

Apache (hay máy chủ HTTP Apache – Apache HTTP Server) là một phần mềm máy chủ web mã nguồn mở, miễn phí, được tạo ra để phục vụ các trang web từ server đến trình duyệt của người dùng.

Nói một cách đơn giản, Apache giống như một “người phục vụ” chuyên nghiệp, nhận yêu cầu từ trình duyệt của bạn (ví dụ: yêu cầu xem trang thue-may-chu-gia-re.vn) và chuyển tệp tin của trang web đó (HTML, CSS, hình ảnh,…) về lại cho bạn.

Apache ra đời từ năm 1995 và nhanh chóng trở thành một trong những máy chủ HTTP Apache phổ biến nhất thế giới. Theo W3Techs (2024), Apache HTTP Server vẫn được sử dụng trên khoảng 20% các website toàn cầu, chứng tỏ độ tin cậy và phổ biến lâu dài của máy chủ web này.

Apache HTTP Server

Apache là gì?

Web Server là gì?

Để hiểu rõ hơn về Apache, bạn cần nắm được khái niệm cốt lõi: Web Server là gì. Web Server (hay máy chủ web) là một chương trình máy tính lưu trữ các tệp của trang web (như văn bản, hình ảnh, video…).

Khi bạn gõ địa chỉ một website, trình duyệt web của bạn sẽ gửi yêu cầu đến Web Server tương ứng. Web Server sẽ xử lý yêu cầu này và gửi lại các tệp tin cần thiết để trình duyệt hiển thị trang web.

Nói một cách đơn giản, Web Server chính là cầu nối quan trọng giữa người dùng và website. Nó hoạt động 24/7 để đảm bảo rằng các trang web luôn sẵn sàng phục vụ người truy cập bất cứ lúc nào. Nó lắng nghe các yêu cầu, tìm kiếm đúng tệp tin được yêu cầu, và gửi chúng về cho bạn.

Web Server là gì?

Web Server là gì?

Tổng quan thị trường Web Server hiện nay

Thị trường Web Server không chỉ có mỗi Apache. Có rất nhiều đối thủ cạnh tranh mạnh mẽ, mỗi cái tên lại có ưu nhược điểm riêng.

Các Web Server phổ biến (Nginx, LiteSpeed, IIS)

  • Nginx: Nổi tiếng với khả năng xử lý đồng thời nhiều kết nối, Nginx thường được lựa chọn cho các trang web có lượng truy cập lớn. Hiệu suất cao và tiêu tốn ít tài nguyên là điểm mạnh của nó.
  • LiteSpeed: Đây là một Web Server thương mại, tập trung vào tốc độ và hiệu suất. LiteSpeed thường được dùng trên các dịch vụ hosting để cải thiện tốc độ tải trang đáng kể.
  • IIS (Internet Information Services):Web Server của Microsoft, IIS được sử dụng phổ biến trên các hệ thống Windows Server, đặc biệt với các ứng dụng xây dựng bằng ASP.NET.
Các Web Server phổ biến (Nginx, LiteSpeed, IIS)

Các Web Server phổ biến (Nginx, LiteSpeed, IIS)

Xu hướng Web Server và giải pháp cloud-native

Hiện nay, xu hướng dịch chuyển lên đám mây (Cloud) đang làm thay đổi cách chúng ta sử dụng Web Server.

Các giải pháp cloud-native, như việc chạy Web Server trong các container (Docker) và quản lý bằng Kubernetes, đang ngày càng phổ biến. Điều này giúp việc triển khai, quản lý và mở rộng ứng dụng trở nên linh hoạt hơn.

Xu hướng Web Server và giải pháp cloud-native

Tại sao người mới dễ bị nhầm lẫn về Apache?

Khi tìm hiểu về Apache, nhiều người thường nhầm lẫn giữa Apache HTTP Server và Apache Software Foundation (ASF).

  • Apache HTTP Server: Là một phần mềm cụ thể, chính là Web Server mà chúng ta đang nói đến.
  • Apache Software Foundation (ASF): Là một tổ chức phi lợi nhuận, nơi phát triển và quản lý hàng trăm dự án phần mềm mã nguồn mở, bao gồm cả Apache HTTP Server, Apache Tomcat, Apache Spark và nhiều dự án khác.

Như vậy, Apache HTTP Server chỉ là một trong rất nhiều sản phẩm thuộc hệ sinh thái của ASF. Việc phân biệt rõ ràng sẽ giúp bạn hiểu đúng bản chất của máy chủ HTTP Apache này.

Tại sao người mới dễ bị nhầm lẫn về Apache?

Tại sao người mới dễ bị nhầm lẫn về Apache?

Lịch sử và sự phát triển của máy chủ HTTP Apache

Apache HTTP Server ra đời từ năm 1995, nhanh chóng trở thành máy chủ web phổ biến nhờ miễn phí và mã nguồn mở. Một số phiên bản quan trọng:

  • Apache 1.3 (1998): Phiên bản ổn định đầu tiên được sử dụng rộng rãi.
  • Apache 2.0 (2002): Hỗ trợ multi-processing module (MPM), tối ưu hiệu suất và bảo mật.
  • Apache 2.4 (2012): Nâng cao khả năng quản lý kết nối, load balancing và bảo mật TLS/SSL.

Cách máy chủ HTTP Apache hoạt động

Máy chủ HTTP Apache sử dụng kiến trúc client-server. Cấu trúc bên trong gồm tiến trình (process) và luồng (thread), kết hợp với hệ thống module mở rộng.

Nguyên lý xử lý request của Apache

Khi một người dùng gửi yêu cầu truy cập website, quy trình xử lý của máy chủ HTTP Apache diễn ra như sau:

  1. Apache tiếp nhận yêu cầu từ trình duyệt của người dùng.
  2. Apache tìm kiếm tệp tin tương ứng với yêu cầu đó.
  3. Nếu tìm thấy, Apache gửi tệp tin đó về cho trình duyệt.
  4. Nếu không tìm thấy, Apache sẽ trả về lỗi (ví dụ: lỗi 404).

Multi-process và Multi-thread trong Apache

Máy chủ HTTP Apache sử dụng các module quản lý đa tiến trình (MPM – Multi-Processing Modules) để xử lý các yêu cầu. Có ba loại MPM chính:

  • Prefork: Mỗi yêu cầu sẽ được xử lý bởi một tiến trình (process) riêng biệt. Phương pháp này ổn định nhưng tốn nhiều tài nguyên.
  • Worker: Sử dụng cả tiến trình và luồng (thread) để xử lý yêu cầu. Mỗi tiến trình có nhiều luồng con, giúp tiết kiệm tài nguyên hơn.
  • Event: Tương tự Worker nhưng tối ưu hơn trong việc xử lý các kết nối không đồng bộ, đặc biệt hiệu quả với các kết nối giữ lâu.

Modules và Plugin của Apache

Sức mạnh của máy chủ HTTP Apache nằm ở hệ thống module mở rộng. Các module này cho phép Apache có thêm nhiều tính năng mới như:

  • mod_rewrite: Cho phép viết lại URL thân thiện với người dùng và SEO.
  • mod_ssl: Hỗ trợ giao thức bảo mật SSL/TLS.
  • mod_proxy: Giúp Apache hoạt động như một máy chủ Proxy.

Luồng xử lý request (Request flow)

Luồng xử lý yêu cầu trong máy chủ HTTP Apache là một quy trình có cấu trúc. Mỗi yêu cầu sẽ đi qua một loạt các giai đoạn xử lý (request processing phases), từ việc đọc yêu cầu, xác thực, ủy quyền, cho đến khi tạo ra phản hồi cuối cùng.

Nhờ luồng này, các module có thể can thiệp vào từng giai đoạn để thực hiện các chức năng cụ thể.

Tính năng chính của Apache

Máy chủ HTTP Apache có nhiều tính năng nổi bật:

1. Hỗ trợ đa nền tảng

Máy chủ HTTP Apache có thể hoạt động trên nhiều hệ điều hành khác nhau, bao gồm Windows, Linux, macOS, Unix,… Điều này giúp người dùng dễ dàng triển khai trên môi trường quen thuộc của mình.

2. Hệ thống module mở rộng

Hệ thống module của máy chủ HTTP Apache cho phép bạn tùy chỉnh và mở rộng chức năng theo nhu cầu. Bạn có thể thêm hoặc bớt các module để tối ưu hiệu suất và bảo mật.

3. Virtual Hosts

Tính năng Virtual Hosts cho phép bạn chạy nhiều website khác nhau trên cùng một Web Server vật lý. Điều này rất hữu ích đối với các nhà cung cấp dịch vụ hosting, giúp họ tối ưu hóa tài nguyên server.

4. Hỗ trợ SSL/TLS

Máy chủ HTTP Apache hỗ trợ SSL/TLS thông qua module mod_ssl, giúp mã hóa kết nối giữa người dùng và website, đảm bảo an toàn cho dữ liệu nhạy cảm.

5. Logging và giám sát

Máy chủ HTTP Apache tạo ra các tệp log chi tiết (access.log, error.log), ghi lại mọi yêu cầu và lỗi phát sinh. Đây là công cụ hữu ích để quản lý, giám sát và phân tích hành vi người dùng.

6. Load balancing và reverse proxy

Sử dụng mod_proxy_balancer, máy chủ HTTP Apache có thể hoạt động như một reverse proxy và load balancer, phân phối lượng truy cập đến nhiều Web Server khác nhau, giúp cải thiện hiệu suất và độ tin cậy.

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

Ưu điểm

  • Miễn phí và mã nguồn mở: Đây là ưu điểm lớn nhất, giúp bất kỳ ai cũng có thể sử dụng và tùy chỉnh.
  • Cộng đồng lớn mạnh: Cộng đồng người dùng và lập trình viên Apache rất đông đảo. Bạn có thể dễ dàng tìm kiếm tài liệu, hướng dẫn và sự hỗ trợ khi gặp vấn đề.
  • Linh hoạt và dễ cấu hình: Hệ thống module của Apache giúp bạn dễ dàng thêm, bớt tính năng. Tệp cấu hình .htaccess cũng cho phép người dùng điều chỉnh cấu hình từng thư mục một cách linh hoạt.
  • Tương thích cao: Máy chủ HTTP Apache hoạt động tốt với hầu hết các CMS (Content Management System) và Framework phổ biến như WordPress, Joomla, Drupal, Django, Laravel,…

Nhược điểm

  • Hiệu suất: Với các trang web có lượng truy cập đồng thời rất cao, máy chủ HTTP Apache có thể tiêu tốn nhiều tài nguyên hơn so với Nginx do cấu trúc đa tiến trình của nó.
  • Tiêu tốn tài nguyên: Khi xử lý nhiều kết nối, HTTP Apache Server cần nhiều bộ nhớ RAM hơn. Đây là một yếu tố cần cân nhắc khi lựa chọn Web Server.

Vì sao Apache vẫn nổi bật?

Dù có nhược điểm về hiệu suất so với Nginx, máy chủ HTTP Apache vẫn giữ một vị trí quan trọng trong thế giới web.

Cộng đồng và tài liệu phong phú

Sự phổ biến của Apache trong nhiều năm qua đã tạo nên một kho tài liệu khổng lồ. Hầu hết các vấn đề bạn gặp phải đều đã có người khác giải quyết và chia sẻ trên mạng. Từ các diễn đàn, blog đến tài liệu chính thức, bạn có thể dễ dàng tìm thấy hướng dẫn chi tiết để xử lý mọi tình huống.

Cộng đồng và tài liệu phong phú

Cộng đồng và tài liệu phong phú

Mã nguồn mở và linh hoạt

Apache là một dự án mã nguồn mở, cho phép bất kỳ ai cũng có thể sử dụng miễn phí, xem và đóng góp vào mã nguồn. Hệ thống module của Apache cũng mang lại sự linh hoạt cao, giúp bạn tùy chỉnh Web Server phù hợp với từng nhu cầu cụ thể của mình.

Mã nguồn mở và linh hoạt

Mã nguồn mở và linh hoạt

Tương thích với CMS/Framework

Apache có khả năng tương thích cao với hầu hết các CMS và framework phổ biến. Các dịch vụ hosting thường sử dụng Apache bởi nó hoạt động tốt với WordPress, Joomla, Drupal, và các tệp .htaccess đặc trưng của nó được các CMS này sử dụng để quản lý đường dẫn thân thiện.

Tương thích với CMS/Framework

Tương thích với CMS/Framework

So sánh Apache với các Web Server khác

Apache vs Nginx

  • Giống nhau: Cả hai đều là Web Server mã nguồn mở, miễn phí và hỗ trợ đa nền tảng.
  • Khác nhau: Nginx sử dụng kiến trúc bất đồng bộ (event-driven), giúp xử lý hiệu quả các kết nối đồng thời. Apache sử dụng kiến trúc đa tiến trình hoặc luồng, ổn định nhưng tiêu tốn tài nguyên hơn.
Apache vs Nginx

Apache vs Nginx

Apache vs LiteSpeed

LiteSpeed có hiệu suất cao hơn Apache và Nginx, nhưng đây là một phần mềm thương mại. LiteSpeed có khả năng tương thích cao với cấu hình Apache, giúp việc chuyển đổi dễ dàng.

Apache vs LiteSpeed

Apache vs LiteSpeed

Apache vs IIS

IIS là Web Server của Microsoft, được thiết kế để chạy trên hệ điều hành Windows Server. IIS hoạt động hiệu quả với các ứng dụng ASP.NET, trong khi Apache hoạt động tốt hơn với PHP, Python,…

Apache vs IIS

Apache vs IIS

Ứng dụng của Apache

Hiểu rõ Apache là gì và cách nó hoạt động sẽ giúp bạn tận dụng tối đa những ứng dụng và lợi ích của nó.

Các hệ điều hành và nền tảng hỗ trợ

Apache hoạt động tốt trên nhiều hệ điều hành, bao gồm Linux (Ubuntu, CentOS), Windows và macOS. Sự linh hoạt này giúp các đơn vị cung cấp dễ dàng triển khai và quản lý, đáp ứng nhu cầu đa dạng của khách hàng.

Ví dụ thực tế về việc sử dụng Apache

  • Chạy website: Apache được sử dụng để chạy các website WordPress, Joomla, Drupal trên các dịch vụ hosting.
  • Môi trường phát triển: Các lập trình viên thường cài đặt Apache trên máy tính cá nhân (sử dụng XAMPP, WAMP, MAMP) để xây dựng môi trường phát triển web offline.
  • Máy chủ Reverse Proxy: Apache có thể hoạt động như một máy chủ reverse proxy để cân bằng tải, phân phối lượng truy cập đến nhiều máy chủ khác.

Bật module mod_rewrite

Với máy chủ HTTP Apache, việc bật module mod_rewrite là một ví dụ điển hình về việc tùy chỉnh. Module này giúp bạn tạo ra các URL đẹp và dễ nhớ (ví dụ: domain.com/san-pham/laptop thay vì domain.com/index.php?id=123).

Điều này không chỉ giúp người dùng dễ truy cập mà còn rất tốt cho SEO.

Cấu hình bảo mật nâng cao trên máy chủ HTTP Apache

Bảo mật là một vấn đề quan trọng khi cấu hình máy chủ web. Apache cung cấp nhiều cách để cấu hình bảo mật, bảo vệ máy chủ của bạn khỏi các cuộc tấn công.

Sử dụng .htaccess để kiểm soát truy cập

Tệp .htaccess là một công cụ mạnh mẽ để cấu hình bảo mật. Tệp này cho phép bạn cấu hình quyền truy cập, giới hạn băng thông và nhiều hơn nữa. Tệp .htaccess được đặt trong thư mục bạn muốn áp dụng các cấu hình bảo mật.

Ví dụ, để chặn truy cập vào một thư mục, bạn có thể tạo một tệp .htaccess trong thư mục đó với nội dung sau:

Order Deny,Allow
Deny from All

Sau khi bạn tạo tệp .htaccess, bạn có thể kiểm tra cấu hình bằng cách truy cập vào thư mục đó để xem liệu bạn có thể truy cập vào nó hay không.

Giới hạn truy cập theo IP

Apache cho phép bạn giới hạn truy cập vào các tệp hoặc thư mục dựa trên địa chỉ IP. Việc này giúp bảo vệ các khu vực quản trị hoặc các tệp quan trọng khỏi truy cập trái phép.

Bạn có thể thêm các quy tắc Allow from hoặc Deny from vào tệp cấu hình .htaccess hoặc httpd.conf để chỉ định các địa chỉ IP được phép hoặc bị cấm.

Bảo mật thư mục và các tệp quan trọng

Khi cài đặt website, bạn cần đảm bảo các thư mục và tệp tin quan trọng (như tệp cấu hình database) không thể truy cập được từ bên ngoài.

Apache cho phép bạn đặt quyền truy cập (permissions) phù hợp, đảm bảo chỉ những người có quyền mới có thể xem và chỉnh sửa các tệp này.

Tích hợp Apache với CMS/Framework

Khả năng tương thích cao là một trong những điểm mạnh chính của Apache. Dưới đây là cách máy chủ HTTP Apache hoạt động với các hệ quản trị nội dung (CMS) và framework phổ biến.

Apache và WordPress

Hầu hết các dịch vụ dành cho WordPress đều sử dụng Apache. nhờ tính tương thích và hỗ trợ mạnh mẽ.

Tệp .htaccess đóng vai trò quan trọng để WordPress hoạt động đúng cách, đặc biệt khi bật đường dẫn thân thiện (permalinks). Apache xử lý các quy tắc trong tệp .htaccess để chuyển hướng các yêu cầu đến đúng trang hoặc bài viết, thay vì địa chỉ URL phức tạp.

Apache và Joomla/Drupal

Tương tự như WordPress, Joomla và Drupal cũng hoạt động rất hiệu quả với Apache. Các hệ thống này đều có tệp cấu hình tương tự như .htaccess để quản lý các URL và bảo mật. Nhờ sự hỗ trợ mạnh mẽ của Apache, việc triển khai và quản lý các trang web xây dựng trên Joomla hay Drupal trở nên dễ dàng.

Apache với các Framework như Django, Laravel

Apache cũng có thể hoạt động với các framework lập trình web như Django (Python) hay Laravel (PHP). Tuy nhiên, nó thường cần kết hợp với các công nghệ khác để xử lý hiệu quả.

Ví dụ, với Django, Apache sẽ sử dụng các module như mod_wsgi để chạy ứng dụng Python. Với Laravel, nó sẽ sử dụng PHP-FPM để xử lý các yêu cầu PHP, giúp cải thiện hiệu suất.

Tối ưu hiệu suất máy chủ HTTP Apache

Sử dụng Caching (mod_cache, mod_disk_cache, mod_mem_cache)

Caching là một trong những cách hiệu quả nhất để tăng tốc độ tải trang. Thay vì phải xử lý lại yêu cầu mỗi lần, Apache sẽ lưu trữ bản sao của trang web.

  • mod_cache: Module chính để bật tính năng cache.
  • mod_disk_cache: Cache trên ổ cứng.
  • mod_mem_cache: Cache trên bộ nhớ RAM, tốc độ truy xuất nhanh hơn nhiều.

Khi kích hoạt các module này, Apache sẽ phục vụ nội dung từ bộ nhớ đệm thay vì phải xử lý lại từ đầu, giúp giảm đáng kể thời gian phản hồi.

Tối ưu kết nối: KeepAlive, MaxConnections, Timeout

Các thiết lập này trong tệp cấu hình chính của Apache giúp quản lý kết nối hiệu quả hơn.

  • KeepAlive: Cho phép giữ kết nối với trình duyệt sau khi gửi xong dữ liệu, giúp giảm thời gian thiết lập lại kết nối cho các yêu cầu tiếp theo.
  • MaxConnectionsPerChild: Giới hạn số lượng kết nối mà một tiến trình con của Apache có thể xử lý, giúp ngăn chặn việc một tiến trình bị quá tải.
  • Timeout: Thiết lập thời gian chờ tối đa cho các yêu cầu.

Tối ưu các tham số này sẽ giúp Apache quản lý tài nguyên tốt hơn, tránh tình trạng quá tải server.

Quản lý và tối ưu modules để tăng hiệu suất

Như đã đề cập khi giải thích Apache là gì, máy chủ HTTP Apache có rất nhiều module để mở rộng chức năng.

Tuy nhiên, việc kích hoạt quá nhiều module không cần thiết sẽ làm tiêu tốn tài nguyên hệ thống. Cách tốt nhất là chỉ nên bật những module thực sự cần thiết cho website của bạn. Điều này giúp giảm lượng RAM tiêu thụ và cải thiện hiệu suất tổng thể.

Quản lý và giám sát máy chủ HTTP Apache

Để đảm bảo máy chủ web Apache hoạt động ổn định và hiệu quả, việc quản lý và giám sát liên tục là rất cần thiết.

Công cụ quản lý: apachectl, httpd

  • apachectl: Đây là một công cụ quản lý dòng lệnh mạnh mẽ trên Linux/Unix để khởi động, dừng, khởi động lại và kiểm tra trạng thái của Apache. Ví dụ: sudo apachectl start hoặc sudo apachectl restart.
  • httpd: Đây là chương trình chính của Apache, thực hiện việc xử lý các yêu cầu từ khách hàng.

Quản lý dịch vụ Apache trên Windows và Linux

  • Trên Windows: Bạn có thể quản lý Apache thông qua ứng dụng Apache Service Monitor, cho phép bạn dễ dàng khởi động, dừng hoặc khởi động lại dịch vụ.
  • Trên Linux (sử dụng Systemd): Bạn có thể sử dụng các lệnh systemctl để quản lý dịch vụ Apache:
    • sudo systemctl start apache2: Khởi động dịch vụ.
    • sudo systemctl stop apache2: Dừng dịch vụ.
    • sudo systemctl restart apache2: Khởi động lại dịch vụ.
    • sudo systemctl status apache2: Kiểm tra trạng thái dịch vụ.

Log files: access.log, error.log

  • access.log: Ghi lại tất cả các yêu cầu thành công được gửi đến máy chủ. Tệp này cung cấp thông tin hữu ích về lượng truy cập, các trang được xem, địa chỉ IP của khách truy cập và trình duyệt họ sử dụng.
  • error.log: Ghi lại các lỗi và cảnh báo của Apache. Khi gặp sự cố, đây là nơi đầu tiên bạn cần kiểm tra để tìm ra nguyên nhân.

Logging nâng cao và phân tích access/error logs

Bạn có thể tùy chỉnh định dạng log để thu thập thêm thông tin. Việc phân tích log giúp bạn hiểu rõ hơn về lượng truy cập, hành vi người dùng, và phát hiện các vấn đề bảo mật.

Real-time monitoring và alert

Đối với các website lớn, việc giám sát Apache theo thời gian thực (real-time monitoring) là rất quan trọng. Các công cụ giám sát sẽ theo dõi hiệu suất máy chủ (CPU, RAM, lưu lượng mạng) và gửi cảnh báo (alerts) ngay lập tức khi phát hiện vấn đề.

Dashboard theo dõi hiệu suất Apache

Bạn có thể sử dụng các dashboard chuyên nghiệp như Grafana hoặc Kibana để tạo các biểu đồ trực quan từ dữ liệu log, giúp bạn dễ dàng theo dõi hiệu suất, phát hiện xu hướng và chẩn đoán vấn đề một cách nhanh chóng.

Hướng dẫn cài đặt và cấu hình Apache Web Server trên Ubuntu

1. Yêu cầu chuẩn bị

  • Máy chủ Ubuntu 16.04 LTS.
  • Quyền truy cập máy chủ qua SSH.
  • Kiến thức cơ bản về dòng lệnh Linux.

2. Cài đặt Apache trên Ubuntu

Để cài đặt Apache, bạn chỉ cần cập nhật kho lưu trữ và chạy lệnh cài đặt gói apache2 mới nhất:

sudo apt update
sudo apt install apache2

Sau khi chạy lệnh, mọi gói cần thiết sẽ được cài đặt tự động. Bây giờ, bạn có thể kiểm tra xem Apache đã hoạt động chưa bằng cách gõ địa chỉ IP của máy chủ vào trình duyệt.

Trang mặc định của Apache2 trên Ubuntu

Trang mặc định của Apache2 trên Ubuntu

Nếu bạn nhìn thấy trang web trên, nghĩa là Apache đã được cài đặt thành công.

3. Tạo website riêng trên Apache

Mặc định, Apache có một trang web cơ bản (chính là trang bạn vừa thấy ở bước trước). Bạn có thể chỉnh sửa nội dung của nó tại thư mục /var/www/html/ hoặc thay đổi cấu hình trong tệp Virtual Host tại /etc/apache2/sites-enabled/000-default.conf.

Với Apache, bạn có thể tùy chỉnh cách nó xử lý các yêu cầu và thậm chí chạy nhiều trang web trên cùng một máy chủ, chỉ cần chỉnh sửa tệp Virtual Hosts.

Trong bài viết này, chúng ta sẽ giữ nguyên cấu hình mặc định cho trang www.example.com và tạo một trang web riêng tại gci.example.com.

Hãy bắt đầu bằng cách tạo một thư mục cho website mới của bạn trong /var/www/ bằng lệnh:

sudo mkdir /var/www/gci/

Bạn có thể đặt tên thư mục bất kỳ, miễn là bạn trỏ đúng đường dẫn này trong tệp Virtual Hosts sau.

Bây giờ, chúng ta sẽ tạo một tệp HTML cho website. Hãy di chuyển vào thư mục vừa tạo và tạo tệp index.html:

cd /var/www/gci/
nano index.html

Dán đoạn code dưới đây vào tệp index.html:

<html>
<head>
<title> Ubuntu rocks! </title>
</head>
<body>
<p> I'm running this website on an Ubuntu Server server!
</body>
</html>

Bước tiếp theo, chúng ta sẽ tạo tệp Virtual Host để khi gõ gci.example.com, trang web này sẽ hiện lên.

4. Cấu hình VirtualHost trong Apache

Đầu tiên, hãy di chuyển đến thư mục chứa các tệp cấu hình:

cd /etc/apache2/sites-available/

Apache đã có sẵn một tệp Virtual Host mặc định, chúng ta sẽ sao chép nó làm nền tảng. Hãy đặt tên tệp mới là gci.conf để dễ quản lý:

sudo cp 000-default.conf gci.conf

Bây giờ, hãy mở tệp cấu hình để chỉnh sửa:

sudo nano gci.conf

Bạn nên thêm email của mình vào ServerAdmin để người dùng có thể liên hệ khi có lỗi xảy ra:

ServerAdmin [email protected]

Tiếp theo, hãy chắc chắn rằng DocumentRoot trỏ đến thư mục chứa các tệp của website chúng ta:

DocumentRoot /var/www/gci/

Tệp mặc định không có ServerName, vì vậy chúng ta cần thêm dòng này ở phía dưới để định danh cho website:

ServerName gci.example.com

Dòng này đảm bảo người dùng sẽ truy cập đúng trang web của bạn khi gõ gci.example.com thay vì trang mặc định.

Sau khi hoàn tất cấu hình, chúng ta sẽ lưu lại và kích hoạt nó ở bước tiếp theo.

5. Kích hoạt VirtualHost mới

Sau khi đã cấu hình xong website, chúng ta cần kích hoạt tệp Virtual Hosts để nó có hiệu lực. Hãy chạy lệnh sau trong thư mục chứa tệp cấu hình:

sudo a2ensite gci.conf

Bạn sẽ thấy thông báo:

Enabling site gci.
To activate the new configuration, you need to run:
  service apache2 reload
root@ubuntu-server:/etc/apache2/sites-available#

Để tải trang web mới, chúng ta cần khởi động lại Apache bằng lệnh:

service apache2 reload

Nếu không báo lỗi, nghĩa là cấu hình đã được áp dụng thành công.

Bây giờ, chỉ cần mở trình duyệt và truy cập gci.example.com để kiểm tra kết quả.

Kết quả cuối cùng

Kết quả cuối cùng

Như vậy, bạn đã cài đặt và cấu hình thành công Apache, đồng thời triển khai website đầu tiên của mình trên Ubuntu Server.

Apache Tomcat là gì?

Apache Tomcat là một máy chủ ứng dụng web (web/application server) mã nguồn mở, được thiết kế đặc biệt để chạy các ứng dụng Java Servlet, JavaServer Pages (JSP) và Java Expression Language (EL).

Nói cách khác, nếu máy chủ HTTP Apache chủ yếu phục vụ các tệp tĩnh (HTML, CSS), thì Tomcat lại chuyên xử lý các ứng dụng web được viết bằng ngôn ngữ Java, tạo ra các nội dung động.

Apache Tomcat là gì?

Apache Tomcat là gì?

Mối quan hệ giữa Apache HTTP Server và Tomcat

Mối quan hệ giữa hai máy chủ này khá thú vị. Chúng thường hoạt động song song để tạo nên một hệ thống hoàn chỉnh.

  • Apache HTTP Server: Thường được sử dụng làm máy chủ frontend, tiếp nhận các yêu cầu ban đầu từ người dùng. Nó có nhiệm vụ phục vụ các nội dung tĩnh như hình ảnh, CSS, JavaScript một cách hiệu quả.
  • Apache Tomcat: Thường được sử dụng làm máy chủ backend, xử lý các yêu cầu liên quan đến ứng dụng Java động.

Khi một yêu cầu đến, Apache HTTP Server sẽ phân biệt: nếu là yêu cầu về tệp tĩnh, nó sẽ tự xử lý; nếu là yêu cầu về ứng dụng Java, nó sẽ chuyển tiếp (proxy) yêu cầu đó đến Apache Tomcat để xử lý.

Apache HTTP Server và Tomcat

Mối quan hệ giữa Apache HTTP Server và Tomcat

Các trường hợp sử dụng phổ biến của Tomcat

Apache Tomcat được sử dụng rộng rãi trong các trường hợp sau:

  • Chạy các ứng dụng thương mại điện tử, hệ thống quản lý khách hàng (CRM) và các ứng dụng doanh nghiệp được xây dựng bằng Java.
  • Xây dựng các trang web động dựa trên công nghệ JSP và Servlet.
  • Làm máy chủ phát triển cho các lập trình viên Java.
Các trường hợp sử dụng phổ biến của Tomcat

Các trường hợp sử dụng phổ biến của Tomcat

Hướng dẫn cài đặt Apache Tomcat

Cài đặt Apache Tomcat trên Windows

Chúng ta sẽ lấy ví dụ với Apache Tomcat 7 trên Windows Server 2008.

1. Tải về

Đầu tiên, bạn hãy tải Apache Tomcat trực tiếp từ trang web chính thức của nhà cung cấp tại địa chỉ: http://tomcat.apache.org/download-70.cgi.

Bạn hãy chọn phiên bản 32-bit hoặc 64-bit phù hợp với máy chủ của mình.

Lưu ý: Máy chủ của bạn phải có sẵn Java JDK. Nếu chưa có, bạn có thể tải về tại trang chủ của Oracle với phiên bản tương ứng.

2. Cài đặt

Sau khi tải về tệp nén, bạn giải nén nó vào một thư mục bất kỳ. Sau đó, làm theo các bước sau:

  • Mở Command Prompt (gõ cmd vào thanh tìm kiếm hoặc nhấn Windows + R, sau đó gõ cmd).
  • Chạy lệnh sau: C:\apache-tomcat-7.0.69\bin\services.bat install (nhớ thay đổi đường dẫn phù hợp với thư mục bạn đã giải nén).

Nếu kết quả trả về là "The service “tomcat7” has been installed", nghĩa là bạn đã cài đặt thành công.

Tiếp tục, chạy lệnh C:\apache-tomcat-7.0.69\bin\startup.bat để khởi động Tomcat 7. Nếu quá trình khởi động thành công, bạn sẽ thấy thông báo.

Cuối cùng, truy cập http://localhost:8080 hoặc http://ip-server:8080 trong trình duyệt để thấy trang mặc định của Web Server này.

Cách xử lý lỗi: The CATALINA_HOME environment variable is not defined correctly

Lỗi này thường xảy ra khi các biến môi trường chưa được thiết lập đúng. Để khắc phục, bạn làm như sau:

  • Vào Control Panel và chọn System.
  • Chọn Advanced System Settings.
  • Ở cửa sổ mới, chọn tab Advanced và click vào Environment Variables...
  • Trong phần System Variables, chọn New và thêm các giá trị sau:
    • Variable Name: CATALINA_HOMEVariable value: C:\apache-tomcat-7.0.69 (đường dẫn tới thư mục Tomcat của bạn).
    • Variable Name: CLASSPATHVariable value: C:\apache-tomcat-7.0.69\bin (đường dẫn tới thư mục bin của Tomcat).
    • Variable Name: JAVA_HOMEVariable value: C:\Program Files\Java\jdk1.8.0_91 (đường dẫn tới thư mục cài đặt Java JDK của bạn).

Cài đặt Apache Tomcat trên Ubuntu

1. Cài đặt Java

Tomcat chạy trên nền tảng Java, vì vậy bạn cần cài đặt Java trên máy chủ Ubuntu của mình. Bạn có thể dùng OpenJDK hoặc Oracle JDK. Với OpenJDK, bạn chỉ cần chạy hai lệnh sau:

sudo apt update
sudo apt install default-jdk

2. Tải và cài đặt Apache Tomcat

Truy cập trang web chính thức của Apache Tomcat để tải về phiên bản mới nhất: https://tomcat.apache.org/.

Tìm phiên bản Tomcat bạn muốn và tải tệp .tar.gz. Sau đó, di chuyển tệp đã tải xuống vào thư mục /opt/ và giải nén:

sudo mv apache-tomcat-{version}.tar.gz /opt/
cd /opt/
sudo tar -xzvf apache-tomcat-{version}.tar.gz

(Nhớ thay thế {version} bằng phiên bản bạn đã tải).

3. Cấu hình quyền truy cập

Mặc định, Tomcat không cho phép quản trị từ xa. Bạn cần chỉnh sửa tệp cấu hình để cấp quyền:

sudo nano /opt/apache-tomcat-{version}/conf/tomcat-users.xml

Thêm người dùng và vai trò quản trị vào tệp:

XML

<tomcat-users>
   <user username="admin" password="your_password" roles="manager-gui,admin-gui"/>
</tomcat-users>

(Thay your_password bằng mật khẩu bạn muốn).

4. Khởi động Tomcat

Sử dụng lệnh sau để khởi động Tomcat:

/opt/apache-tomcat-{version}/bin/startup.sh

5. Truy cập giao diện quản lý

Mở trình duyệt và truy cập vào giao diện quản lý Tomcat bằng cách gõ địa chỉ: http://your_server_ip:8080/.

Bạn chỉ cần đăng nhập bằng tên người dùng và mật khẩu vừa tạo. Vậy là đã hoàn thành!

Cài đặt Apache Tomcat trên CentOS

1. Cài đặt Java

Tương tự Ubuntu, bạn cần cài đặt Java. Để cài đặt OpenJDK, bạn sử dụng lệnh:

sudo yum install java-1.8.0-openjdk-devel

2. Tải và cài đặt Apache Tomcat

Truy cập trang web chính thức của Apache Tomcat để tải về phiên bản mới nhất: https://tomcat.apache.org/.

Tải tệp .tar.gz, sau đó di chuyển vào thư mục /opt/ và giải nén:

sudo mv apache-tomcat-{version}.tar.gz /opt/
cd /opt/
sudo tar -xzvf apache-tomcat-{version}.tar.gz

(Nhớ thay {version} bằng phiên bản bạn đã tải).

3. Cấu hình quyền truy cập

Mặc định, Tomcat không cho phép quản trị từ xa. Để cho phép truy cập, bạn chỉnh sửa tệp cấu hình:

sudo nano /opt/apache-tomcat-{version}/conf/tomcat-users.xml

Thêm người dùng và vai trò quản trị vào tệp:

XML

<tomcat-users>
   <user username="admin" password="your_password" roles="manager-gui,admin-gui"/>
</tomcat-users>

(Thay your_password bằng mật khẩu bạn muốn).

4. Khởi động Tomcat

Sử dụng lệnh sau để khởi động Tomcat:

/opt/apache-tomcat-{version}/bin/startup.sh

5. Truy cập giao diện quản lý

Mở trình duyệt và truy cập vào giao diện quản lý Tomcat bằng cách gõ địa chỉ: http://your_server_ip:8080/.

Sau đó đăng nhập bằng thông tin bạn đã tạo. Như vậy, Apache Tomcat đã được cài đặt thành công trên CentOS.

Một số vấn đề thường gặp về Apache và cách khắc phục

Lỗi 403 Forbidden

Lỗi 403 Forbidden xảy ra khi bạn cố gắng truy cập vào một thư mục hoặc tệp tin nhưng không được phép. Nguyên nhân thường gặp là:

  • Thiếu quyền truy cập: Quyền của thư mục hoặc tệp không được đặt đúng, khiến Apache không thể đọc hoặc thực thi.
  • Cấu hình bị chặn: Có một quy tắc trong tệp .htaccess hoặc httpd.conf chặn quyền truy cập từ IP hoặc người dùng cụ thể.

Cách khắc phục:

  • Kiểm tra quyền: Đặt lại quyền (permissions) cho thư mục và tệp. Thông thường, thư mục có quyền 755 và tệp tin là 644.
  • Kiểm tra tệp .htaccess: Mở tệp .htaccess trong thư mục đó, tìm các dòng có chứa deny from all hoặc các quy tắc chặn truy cập và kiểm tra lại.

Lỗi 500 Internal Server Error

Lỗi 500 Internal Server Error là một lỗi chung, cho biết có điều gì đó sai ở phía máy chủ nhưng không thể xác định cụ thể. Nguyên nhân phổ biến nhất là:

  • Lỗi cú pháp trong .htaccess: Chỉ một dấu chấm hoặc một ký tự sai trong tệp .htaccess cũng có thể gây ra lỗi này.
  • Quyền truy cập tệp không đúng: Một tệp script (như PHP) có quyền thực thi không chính xác cũng có thể dẫn đến lỗi 500.

Cách khắc phục:

  • Kiểm tra .htaccess: Đổi tên tệp .htaccess thành một tên khác (ví dụ: .htaccess-old). Nếu lỗi biến mất, bạn biết vấn đề nằm ở tệp này.
  • Kiểm tra log lỗi: Đọc tệp error.log của Apache. Tệp này sẽ ghi lại chi tiết lỗi, giúp bạn xác định nguyên nhân chính xác.

Các lỗi phổ biến khác và hướng dẫn xử lý

  • Connection timed out: Thường xảy ra khi máy chủ quá tải hoặc tường lửa (firewall) chặn kết nối. Cần tối ưu lại cấu hình Apache hoặc kiểm tra cài đặt tường lửa.
  • Lỗi 404 Not Found: Tệp hoặc trang bạn yêu cầu không tồn tại trên máy chủ. Đảm bảo đường dẫn trong code hoặc URL đã đúng.
  • Failed to start Apache: Lỗi này xảy ra khi Apache không thể khởi động. Nguyên nhân có thể là một cổng đã bị chiếm dụng (ví dụ: cổng 80 hoặc 443), hoặc có lỗi cú pháp trong tệp cấu hình httpd.conf.
Một số vấn đề thường gặp và cách khắc phục

Một số vấn đề thường gặp và cách khắc phục

Các câu hỏi thường gặp về Apache (FAQ)

Apache có miễn phí không?

Máy chủ HTTP Apache hoàn toàn miễn phí và mã nguồn mở.

Apache có an toàn không?

Đảm bảo an toàn khi cập nhật phiên bản mới, bật SSL/TLS và module bảo mật.

Tôi có cần Apache nếu dùng WordPress không?

WordPress chạy tốt trên Apache, nhờ hỗ trợ mod_rewrite, SSL/TLS và caching.

Apache là gì?

Trong lĩnh vực công nghệ, Apache là tên của Apache Software Foundation – tổ chức phát triển nhiều phần mềm mã nguồn mở nổi tiếng, điển hình là Apache HTTP Server.

Apache là ai?

Trong giới công nghệ, khi nhắc đến “Apache” người ta thường nghĩ ngay đến Apache Group, tiền thân của Apache Software Foundation – nhóm lập trình viên tạo ra máy chủ web Apache.

Nginx là gì?

Nginx là một web server mã nguồn mở, thường được dùng để phân phối nội dung tĩnh, cân bằng tải (load balancing) và làm reverse proxy. Nginx được đánh giá cao về tốc độ, khả năng xử lý đồng thời nhiều kết nối và hiệu suất vượt trội so với một số web server truyền thống.

NiFi là gì?

Apache NiFi là một dự án mã nguồn mở thuộc Apache Software Foundation, được thiết kế để tự động hóa luồng dữ liệu giữa các hệ thống khác nhau. NiFi hỗ trợ thu thập, xử lý, chuyển đổi và phân phối dữ liệu theo thời gian thực, rất hữu ích trong các hệ thống Big Data và IoT.

Kết luận

Dù đã tồn tại hơn hai thập kỷ và xuất hiện nhiều đối thủ mới, máy chủ HTTP Apache vẫn giữ một vị trí vững chắc trong thế giới web. Với sự ổn định, tính linh hoạt và cộng đồng lớn mạnh, Apache vẫn là một lựa chọn hàng đầu cho nhiều website, đặc biệt là các trang web sử dụng CMS phổ biến như WordPress.

Việc hiểu rõ Apache là gì không chỉ giúp bạn xây dựng nền tảng kiến thức vững chắc mà còn là bước đi quan trọng để quản lý và tối ưu hóa website của mình.

Để lại một bình luận