Apache là gì? Cách hoạt động và cài đặt Apache như thế nào?

2179
15-10-2018
Apache là gì? Cách hoạt động và cài đặt Apache như thế nào?

Apache là gì? Hiện vẫn rất nhiều người tò mò. Bài viết dưới đây Bizfly Cloud  sẽ cung cấp cho người dùng nền tảng sơ bộ về apache và cách cài đặt chúng ra sao? Hãy cùng theo dõi nhé!

Apache là gì?

Apache là phần mềm web server miễn phí mã nguồn mở, hiện đang là một trong những web server được sử dụng phổ biến trên thế giới. Tên chính thức của Apache là Apache HTTP Server, được điều hành và phát triển bởi Apache Software Foundation.

Các yêu cầu gửi tới máy chủ sử dụng phương thức HTTP còn được gọi tắt là HTTP request.

Sử dụng trình duyệt bạn có thể gửi đi một HTTP request đơn giản bằng cách nhập một địa chỉ IP (hoặc một URL chứa tên miền) và bấm Enter. Khi đó bạn đã gửi đi một HTTP request tới một máy chủ trên internet. Địa chỉ máy chủ này được xác định bởi địa chỉ IP (hoặc URL với tên miền) mà bạn đã nhập vào.

Do được cài đặt trên web server (phần cứng) nên Apache hay được gọi là web server hay HTTP server. Khi sử dụng thuật ngữ web server, chúng ta hiểu rằng người nói đang đề cập tới góc độ phần mềm.

Cách thức hoạt động của Apache Web Server

Tuy được gọi là Apache web server nhưng nó không phải là server vật lý mà Apache chính là một phần mềm chạy trên server đó. Nhiệm vụ chính của Apache là thiết lập kết nối giữa server và browser (Firefox, Chrome, Safari,...), sau đó chịu trách nhiệm chuyển file qua lại giữa giữa server và browser (cấu trúc hai chiều client-server). Apache hoạt động tốt với cả server Unix và Windows và là phần mềm đa nền tảng.

Khi visitor tải một site trên trang web, ví dụ trang "About Us", browser của user sẽ gửi request tải trang đó lên server và Apache sẽ trả lại kết quả với đầy đủ toàn bộ các file, các thành phần để hiển thị hoàn chỉnh trang About Us (bao gồm image, text,...). Server và client giao tiếp với nhau qua HTTP protocol và Apache chịu trách nhiệm đảm bảo quá trình này diễn ra trơn tru và bảo mật giữa hai máy.

>> Tham khảo thêm:  Cấu hình bảo mật cho hệ thống Web Server sử dụng Apache

Apache là một nền tảng module có độ tùy biến khá cao. Modules cho phép quản trị viên server có thể tắt hoặc thêm vào các chức năng. Apache sở hữu các modules cho bảo mật caching, URL rewriting, chứng thực mật khẩu,...

Ưu điểm và hạn chế của Apache

Apache web server là lựa chọn khá tối ưu nếu bạn muốn vận hành website của mình một cách thật ổn định và có thể tùy chỉnh linh hoạt.

Ưu điểm

- Apache là phần mềm mã nguồn mở, miễn phí kể cả cho mục đích thương mại.

- Apache đáng tin cậy, ổn định.

- Apache luôn được cập nhật thường xuyên, được vá lỗi bảo mật liên tục.

- Apache khá linh hoạt vì có cấu trúc module.

- Apache dễ dàng cấu hình, thân thiện với người mới bắt đầu sử dụng.

- Apache là phần mềm đa nền tảng (Unix và Windows).

- Apache hoạt động cực kỳ hiệu quả với các website WordPress.

- Apache sở hữu một cộng đồng lớn và sẵn sàng hỗ trợ bất kỳ lúc nào khi bạn gặp sự cố.

Tuy nhiên, bên cạnh các ưu điểm to lớn phía trên thì Apache vẫn đang tồn tại một số điểm bất lợi dưới đây.

Nhược điểm

- Gặp vấn đề hiệu năng nếu website có lượng traffic cực lớn.

- Quá nhiều tùy chọn trong thiết lập gây ra các điểm yếu về bảo mật.

Apache và một số Web Servers

Ngoài Apache còn các web server khác như Nginx, IIS, Tomcat. Mỗi nền tảng có cách tiếp cận riêng cũng như ưu nhược điểm riêng. Hiểu được những khác biệt này là điều cần thiết để bạn có thể đưa ra lựa chọn đúng đắn khi quyết định web server nào là giải pháp phù hợp.

1. Apache và Nginx

Apache và Nginx là 2 web server phổ biến chiếm gần 60% số trang web trên thế giới. Apache và Nginx tương tự nhau về hiệu suất và tính năng. Mặt khác, kiến trúc, bảo mật của chúng lại khác nhau. Lựa chọn giữa hai máy chủ này là một việc khá khó khăn vì cả hai đều xuất sắc, đều có ưu điểm và nhược điểm riêng.

Về kiến trúc của cả hai máy chủ web, Nginx rõ ràng có lợi thế hơn Apache vì nó xử lý các request hiệu quả hơn rất nhiều so với Apache. Trong các trường hợp có lưu lượng truy cập cao, Nginx sẽ hoạt động tốt hơn, đặc biệt nếu có nhiều nội dung tĩnh cần quản lý.

Về hỗ trợ hệ điều hành, Apache được đánh giá cao hơn Nginx vì nó là một nền tảng được thiết lập rất tốt, đã có thời gian tồn tại tương đối lâu hơn trên thị trường so với Nginx. Ngoài ra, máy chủ web Apache linh hoạt hơn Nginx vì các mô-đun có thể tùy chỉnh và có tính năng dynamic loading. Do cấu trúc nền tảng, Apache có thể chiếm nhiều RAM hơn về mặt hiệu suất. Tính bảo mật của Nginx tốt hơn Apache vì codebase nhỏ hơn. Ngoài ra, tài liệu và hỗ trợ cho cả hai máy chủ web gần như giống nhau.

2. Apache và IIS

IIS là một máy chủ web được Microsoft phát triển đặc biệt cho hệ điều hành Windows của riêng mình. Sự khác biệt chính giữa IIS và Apache là máy chủ web IIS chỉ tương thích với hệ điều hành Windows, còn máy chủ web Apache tương thích với hầu hết các hệ điều hành hiện có (như Linux, Windows, Mac OX, OpenVMS, v.v.) Apache đóng một vai trò quan trọng trong sự phát triển ngày càng tăng của các máy chủ web. Apache trở thành web server đầu tiên vượt qua con số khổng lồ 100 triệu trang web trên máy chủ của mình.

Với IIS, người dùng có quyền truy cập vào .NET framework cùng với các tập lệnh ASPX; có thể dễ dàng tích hợp với các dịch vụ khác của Microsoft như ASP, MS SQL,... IIS dễ sử dụng và dễ học - đây là một lợi thế đối với người dùng không chuyên về kỹ thuật. IIS có thể hoạt động thông qua các ngôn ngữ và giao thức khác nhau. Tuy nhiên, IIS thiếu các biện pháp bảo mật để bảo vệ các máy chủ web. Máy chủ IIS thường xuyên bị nhiễm phần mềm độc hại và vi rút dẫn đến lây nhiễm toàn bộ trang web. Lỗ hổng này trong IIS có thể cho phép tin tặc thực hiện khai thác và chiếm quyền kiểm soát toàn bộ máy chủ.

IIS có một đội ngũ nhân viên chuyên trách về các dịch vụ hỗ trợ người dùng. Ngược lại, Apache có sự hỗ trợ của cộng đồng, là những người dùng và các nhà phát triển từ chính công ty mẹ.

3. Apache và Tomcat

Cả Tomcat và Apache đều là các dự án do Apache Software Foundation phát triển. Tomcat là là một máy chủ ứng dụng Java, trong khi Apache là một máy chủ web HTTP. Apache sử dụng ngôn ngữ C và XML. Mặt khác, ngôn ngữ được sử dụng trong Tomcat là Java.

Mục đích của Apache web server chỉ đơn giản là cung cấp các nội dung tĩnh (như văn bản, HTML, hình ảnh, tệp âm thanh và video) cho các client dựa trên web. Trong khi đó, máy chủ Tomcat được sử dụng để xử lý cả nội dung tĩnh và nội dung động. Nội dung tĩnh là những trang được phát triển bằng HTML và nội dung động là những trang được phát triển bằng Servlet và JSP. Tuy nhiên, khi phân phối nội dung tĩnh trên trình duyệt, Tomcat hiển thị nội dung chậm hơn nhiều so với Apache.

Cách cài đặt Apache server

Hướng dẫn sau đây giúp bạn có thể cài đặt Apache từ source, thuận tiện cho việc tìm hiểu, tùy chỉnh cài đặt và cấu hình.

Bước 1: Download Apache

Download Apache source từ Apache Lounge phiên bản 64 bit hoặc 32 bit. File cần download là httpd-2.4.33-win64-VC15.zip.

Bản Apache VC15 được xây dựng trên Visual C Redistributable for Visual Studio 2017 (VC_redist.x64.exe cho 64-bit hoặc VC_redist.x86.exe cho 32-bit) nên bạn cần phải cài đặt nó trên Windows. Nếu bạn muốn cài đặt Apache trên Win XP thì hãy dùng bản Apache VC10 vì bản VC15 không hỗ trợ Win XP.

Bước 2: Cài đặt Apache

Sau khi download Apache từ source, hãy giải nén thư mục Apache24 vào ổ C. Vì source này được build mặc định cho ổ C, nếu như bạn muốn cài đặt nó trên ổ D hay bất kỳ đâu thì bạn cần phải thay đổi lại cấu hình cho DocumentRoot… Vì các cấu hình hơi rắc rối nên chúng ta sẽ để nó ở ổ C và để tên folder là Apache24 theo mặc định.

Như vậy là quá trình cài đặt Apache đã hoàn thành. Để khởi động Apache, vào thư mục C:\Apache24\bin và chạy file httpd.exe.

Bây giờ bạn có thể vào http://localhost để kiểm tra. Nếu như bạn nhìn thấy dòng "It works!" là bạn đã cài đặt và chạy Apache thành công.

Có thể bạn sẽ nhìn thấy thông báo này khi chạy file httpd.exe:

AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using fe80::b93e:e93c:a570:f94a. Set the 'ServerName' directive globally to suppress this message

Đây chỉ là cảnh báo, không phải lỗi. Để fix, bạn cần phải gán giá trị cho mục ServerName trong file C:\Apache24\conf\httpd.conf như sau:

#ServerName www.example.com:80

Bỏ dấu "#" phía trước và thay đổi giá trị thành "localhost" hoặc domain của bạn.

ServerName localhost

Bây giờ bạn tắt cửa sổ httpd.exe và chạy lại file này để khởi động Apache xem còn lỗi hay không.

Bật mod_rewrite trong Apache trên localhost

Để sử dụng được Wordpress Permalink hoặc rewrite cho htaccess, bạn cần phải bật mod_rewrite trên localhost. Để bật mod_rewrite trong Apache, bạn cần mở file C:\Apache24\conf\httpd.conf và tìm đoạn sau:

#LoadModule rewrite_module modules/mod_rewrite.so

Xóa dấu "#" ở trước để bật module này nhé. Sau khi xóa sẽ được như sau:

LoadModule rewrite_module modules/mod_rewrite.so

Tiếp theo bạn cần tìm đến đoạn sau:

<Directory "c:/Apache24/htdocs">

………………….

AllowOverride None

………………….

</Directory>

Sửa AllowOverride None thành AllowOverride All như sau:

<Directory "c:/Apache24/htdocs">

………………….

AllowOverride All

………………….

</Directory>

Restart Apache và kiểm tra. Bạn cũng có thể bật mod_rewrite trong XAMPP, WAMP, Appserv bằng cách làm tương tự.

Apache là gì? Cách cài đặt Apache - Ảnh 2.

Bước 3: Cài đặt service cho Apache

Bạn có thể cài đặt để khởi động, restart, stop Apache thông qua một service của Windows. Bạn cũng có thể khởi động Apache cùng với máy tính nếu bạn muốn.

Mở Command Prompt hoặc cmd (Run as Administrator) và sử dụng các lệnh sau:

cd C:\Apache24\bin

httpd -k install

Như ở trên, bạn cần đi đến thư mục bin của Apache (C:\Apache24\bin) và sử dụng lệnh httpd -k install để cài đặt một service.

Nếu thành công thì bạn sẽ nhìn thấy thông báo như sau:

Installing the 'Apache2.4' service

The 'Apache2.4' service is successfully installed.

Testing httpd.conf….

Errors reported here must be corrected before the service can be started.

Theo mặc định thì Apache sẽ cài đặt service là "Apache2.4". Bạn có thể cài đặt tên service theo ý muốn bằng cách sử dụng lệnh sau:

httpd -k install -n "ten-service"

Bạn có thể start, stop hoặc restart Apache trên Windows bằng cách start, stop hoặc restart service này ở Control Panel > Administrative Tools > Services.

Hoặc bạn có thể sử dụng lệnh để start và stop service của Apache bằng cách mở Command Prompt hoặc cmd (Run as Administrator) và sử dụng các lệnh sau:

# start Apache

net start Apache2.4

# stop Apache

net stop Apache2.4

Mặc định thì service của Apache sẽ tự động khởi động cùng với Windows. Điều đó có nghĩa là Apache sẽ tự khởi động khi bạn bật máy tính. Nếu bạn muốn khởi động Apache thủ công, nhấn đúp vào service và thay đổi mục Startup type thành Manual.

Để gỡ service này, sử dụng lệnh sau:

sc delete Apache2.4

Như vậy là bạn đã cài đặt Apache trên Windows xong. Tiếp theo bạn cần cài đặt và cấu hình cho PHP hoạt động với Apache.

Theo Bizfly Cloud chia sẻ

>> Có thể bạn quan tâm: Hướng dẫn cài đặt Linux, Nginx, MySQL, PHP (LEMP stack) trên Debian 9

BizFly Cloud là nhà cung cấp dịch vụ điện toán đám mây với chi phí thấp, được vận hành bởi VCCorp.

BizFly Cloud là một trong 4 doanh nghiệp nòng cốt trong "Chiến dịch thúc đẩy chuyển đổi số bằng công nghệ điện toán đám mây Việt Nam" của Bộ TT&TT; đáp ứng đầy đủ toàn bộ tiêu chí, chỉ tiêu kỹ thuật của nền tảng điện toán đám mây phục vụ Chính phủ điện tử/chính quyền điện tử.

Độc giả quan tâm đến các giải pháp của BizFly Cloud có thể truy cập tại đây.

DÙNG THỬ MIỄN PHÍ và NHẬN ƯU ĐÃI 3 THÁNG tại: Manage.bizflycloud

SHARE