[Apache] Tổng quan về dịch vụ Apache

30/12/2020

Apache là chương trình dịch vụ Web Server miễn phí nổi tiếng nhất thế giới . Apache Web Server ban đầu được viết cho Unix, nhưng bây giờ Apache đã hỗ trợ các nền tảng khác như Microsoft Windows, MacOS, Linux (RedHat / CentOS / Fedora / Debian / Ubuntu …) . Mặc dù miễn phí, Apache Web Server có nhiều tính năng mạnh mẽ và hỗ trợ nhiều ngôn ngữ lập trình Web bao gồm Perl, Python, và PHP

Web Server là gì?

  • Web Server là 1 dịch vụ mạng hướng nội dung của người dùng lên giao diện Web .
  • Nhiệm vụ của Web Server là đưa website lên Internet . Để làm được điều đó , nó hoạt động giống như là một người đứng giữa Server và máy khách Client . Nó sẽ kéo nội dung từ Server về cho mỗi một truy vấn xuất phát từ máy khách để hiển thị kết quả tương ứng dưới hình thức là một Website .
  • Điểm khó khăn lớn nhất của một Web Server là kéo dữ liệu cho nhiều người dùng cùng một lúc – vì mỗi một người lại cũng đang truy vấn tới các trang web khác nhau . Web server xử lý các file này dưới ngôn ngữ lập trình như là PHPPython , Java ,… Những ngôn ngữ này biến chúng thành file HTML và file trên trình duyệt cho người dùng web thấy được .
  • Web Server còn được gọi là HTTP server và chúng sử dụng giao thức HTTP – hypertext transport protocol ( port 80/TCP ) .
  • Các Web Server có thể cài lên CentOS 7 là :
    • Apache HTTP Server
    • Apache Tomcat
    • nginx
    • OpenLiteSpeed

Apache HTTP Server

  • Trang chủ : http://httpd.apache.org/
  • Source Code : https://github.com/apache/httpd
  • Apache là phần mềm web server mã nguồn mở đa nền tảng miễn phí , sử dụng giấy phép Apache License 2.0
  • Ra đời năm 1995 bởi Robert McCool
  • Phiên bản ổn định mới nhất : 2.4.39 ( tháng 4-2019 ) , tuy nhiên đã phát hành tới bản 2.4.9
  • Apache được phát triển và duy trì bởi một cộng đồng các nhà phát triển dưới sự bảo trợ của Quỹ phần mềm Apache ( Apache Software Foundation ) .
  • Phần lớn các phiên bản Apache chạy trên bản phân phối Linux , nhưng các phiên bản hiện tại cũng chạy trên Microsoft Windows và nhiều hệ thống tương tự Unix . Các phiên bản trước đây cũng chạy trên OpenVMS , NetWare và các hệ điều hành khác  .
  • Là 1 thành phần của LAMP Stack – ( Linux , Apache , MariaDB , Perl/Python/PHP )
  • Theo NetCraft , tính đến tháng 7-2019 , Apache đang chiếm đến khoảng 27.75% thị phần websites trên toàn thế giới .

Ưu điểm

  • Phần mềm mã nguồn mở và miễn phí, kể cả cho mục đích thương mại
  • Phần mềm đáng tin cậy, ổn định
  • Được cập nhật thường xuyên, nhiều bản vá lỗi bảo mật liên tục
  • Linh hoạt vì có cấu trúc module
  • Dễ cấu hình, thân thiện với người mới bắt đầu
  • Đa nền tảng (hoạt động được cả với server Unix và Windows )
  • Hoạt động cực kỳ hiệu quả với WordPress sites
  • Có cộng đồng lớn và sẵn sàng hỗ trợ với bất kỳ vấn đề nào

Nhược điểm 

  • Gặp vấn đề hiệu năng nếu website có lượng truy cập cực lớn
  • Quá nhiều lựa chọn thiết lập có thể gây ra các điểm yếu bảo mật

Các lệnh cơ bản về Apache trên CentOS 7

1) Cài đặt Apache

B1: Cài đặt repo Epel :

yum install -y epel-release

B2: Cài đặt gói httpd :

yum install -y httpd

B3: Cấu hình Firewalld Cho phép dịch vụ httpd  :

firewall-cmd --zone=public --permanent --add-service=http firewall-cmd --reload

B4: Khởi động dịch vụ httpd và cấu hình tự khởi động khi boot  :

systemctl start httpd systemctl enable httpd

B5: Kiểm tra trạng thái dịch vụ httpd :

systemctl status httpd

2) Gỡ cài đặt Apache

yum remove httpd -y

3) Kiểm tra version Apache đã cài

httpd -v

Cài đặt Apache từ Source

B1 : Download source httpd về từ Internet và lưu vào thư mục /var/tmp

cd /var/tmp wget https://archive.apache.org/dist/httpd/httpd-2.4.35.tar.gz tar -zxvf httpd-2.4.35.tar.gz

B2 : Cài đặt các gói thư viện bổ sung

  • Biên dịch gói APR 1.7.0 (Apache Portable Runtime Library)
wget https://www.apache.org/dist/apr/apr-1.7.0.tar.gz cd apr-1.7.0/ ./configure make && make install cd ..
  • Cài đặt Expat-devel 2.1.0
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/expat-devel-2.1.0-10.el7_3.x86_64.rpm rpm -ivh expat-devel-2.1.0-10.el7_3.x86_64.rpm

Chú ý : Phải cài đặt expat-devel trước khi biên dịch APR-util

  • Biên dịch gói APR-util 1.6.1
wget https://www.apache.org/dist/apr/apr-util-1.6.1.tar.gz cd apr-util-1.6.1/ ./configure --with-apr=/usr/local/apr/bin/apr-1-config make && make install cd ..
  • Biên dịch gói PCRE 8.4.3 (Perl Compatible Regular Expressions)
wget -O pcre-8.43.tar.gz https://sourceforge.net/projects/pcre/files/pcre/8.43/pcre-8.43.tar.gz/download cd pcre-8.43/ ./configure make && make install cd ..

B3 : Biên dịch gói httpd 2.4.35 và cài đặt :

cd httpd-2.4.35/ ./configure make && make install

B4 : Khởi động dịch vụ httpd :

systemctl start httpd

Các file/thư mục quan trọng của Apache

  • /var/html/ : là thư mục gốc chứa các file htm , html , images …. tạo thành nội dung cho trang web
  • /etc/httpd/ : thư mục chứa tất cả các file cấu hình cho Apache :
    • /etc/httpd/conf/httpd.conf : file cấu hình chính của dịch vụ Apache
    • /etc/httpd/conf.d/ : thư mục chứa các cấu hình bổ sung cho Apache
      • /etc/httpd/conf.d/vhost.conf : file cấu hình virtual host
      • ……..
    • /etc/httpd/conf.modules.d/ : thư mục chứa file cấu hình của các modules
    • /var/log/httpd/error_log : file chứa log lỗi dịch vụ
    • /var/log/httpd/access_log : file chứa log đăng nhập

THAM KHẢO

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

Samba Server

Samba là dịch vụ của hệ điều hành Linux, chạy trên nền giao thức SMB (Server Message Block) cho...
30/12/2020

[SSL] Cài đặt SSL miễn phí cho WordPress Website với Let’s Encrypt trên Nginx

Trong thời đại hiện nay, khi mà công nghệ ngày càng trở nên phổ biến thì vấn đề bảo...
30/12/2020

[linux_basic] Quản trị Users and Groups

Trong bài viết này, mình sẽ giúp các bạn hiểu rõ hơn về cấu trúc user và group trong hệ điều hành...
30/12/2020