Lưu trữ thẻ: #apache

Hướng dẫn cấu hình Virtual Host trên Apache

I. Tổng quan

Virtual Host là một phương thức cho phép bạn chạy nhiều website khác nhau trên một máy chủ web. Virtual Host phân biệt và phục vụ các trang web khác nhau dựa trên địa chỉ IP hoặc tên miền của từng trang web.

Với Virtual Host, bạn có thể cấu hình các thiết lập riêng cho từng trang web, bao gồm cả các tệp cấu hình, định tuyến và các tính năng khác. Việc sử dụng Virtual Host giúp bạn quản lý nhiều trang web trên cùng một máy chủ một cách dễ dàng và tiết kiệm chi phí phát triển và quản lý hệ thống.

Trong bài viết này, Long Vân sẽ hướng dẫn về cách cấu hình Virtual Host trên máy chủ Apache2.

II. Cài đặt Apache2 trên Ubuntu

  1. Truy cập vào server chạy các lệnh sau để cài đặt Apache:
    # apt-get update
    # apt-get install apache2
  2. Sau khi cài xong ta bắt đầu khỏi chạy dịch vụ
    # systemctl enable apache2
    # systemctl start apache2
  3. Mở firewall cho service apache2
    # ufw allow 80
    # ufw allow 443

III. Cấu hình Virtual Host

  1. Tạo 1 đường dẫn source web và cấp quyền cho đường dẫn đó:
    Trong hướng dẫn này, Long Vân sử dụng domain lvtest.com với source được lưu ở thư mục /var/www/html/lvstest/public_html/

    # mkdir -p /var/www/html/lvstest/public_html/
    # chown -R $USER:$USER /var/www/lvstest/public_html/
    # chmod -R 755 /var/www/
  2. Tạo 1 file Virtual Host mới và thêm nội dung
    <VirtualHost *:80>
        ServerAdmin admin@lvstest.com
        ServerName lvstest.com
        DocumentRoot /var/www/html/lvstest/public_html/
        ErrorLog /var/log/apache2/lvstest.error.log
        CustomLog /var/log/apache2/lvstest.access.log combined
    </VirtualHost>
    • Trong đó:
      • ServerAdmin là từ khóa khai báo địa chỉ email của admin
      • ServerName là tên miền mà ta muốn chạy website
      • DocumentRoot là từ khóa khai báo đường dẫn của source code khi người dùng truy cập vào domain được cấu hình. Đường dẫn này có thể nằm ở bất kỳ một phân vùng nào.
      • ErrorLog là đường dẫn file log thì có lỗi
      • CustomLog là đường dẫn file log ghi lại tất cả các request và người dùng truy cập.
  3. Kích hoạt Virtual Host
    # a2ensite lvstest.conf
  4. Sau đó ta kiểm tra lỗi cấu hình bằng lệnh sau
    # apache2ctl configtest
  5. Sau đó khởi động lại dịch vụ apache2

IV. Kiểm tra

  1. Tạo một trang web test đơn giản với lệnh
    touch /var/www/html/lvstest/public_html/index.html
  2. Nội dung như sau:
    <html>
        <head>
            <title> website test</title>
        </head>
        <body>
            <h1> Long Van xin chao quy khach!</h1>
        </body>
    </html>
  3. Kiểm tra kết quả bằng cách truy cập tên miền http://lvstest.com

Như vậy, Webviet đã hoàn thành hướng dẫn Quý khách cách cấu hình Virtual Host trên Apache2. Chúc Quý khách thành công!

Hướng dẫn tối ưu cấu hình Apache cho website có lưu lượng truy cập cao

Nếu bạn đang chạy một trang web nhận được nhiều lưu lượng truy cập, điều cần thiết là phải tối ưu hóa cấu hình máy chủ web Apache của bạn để đảm bảo hiệu suất và tính khả dụng tối đa. Trong bài viết này, Long Vân sẽ cung cấp cho bạn một số mẹo và ví dụ về cách tối ưu hóa cấu hình Apache của bạn cho các trang web có lưu lượng truy cập cao.

I. Sử dụng module MPM phù hợp

Apache sử dụng Multi-Processing Modules (MPM) để xử lý các yêu cầu của client. MPM chịu trách nhiệm tạo các tiến trình hoặc luồng con để xử lý các yêu cầu đến. Có ba module MPM có sẵn trong Apache: preforkworkervà event.

  • MPM preforklà module MPM lâu đời nhất và ổn định nhất. Nó tạo ra một tiến trình cho mỗi kết nối, điều này có thể dẫn đến việc sử dụng nhiều tài nguyên.
  • MPM workertạo nhiều luồng cho mỗi tiến trình, có thể cải thiện hiệu suất và giảm mức sử dụng tài nguyên.
  • MPM eventtương tự như workerMPM, nhưng nó bổ sung cơ chế thông báo sự kiện không đồng bộ để cải thiện hiệu suất hơn nữa.

Để tối ưu hóa cấu hình Apache của bạn để có lưu lượng truy cập cao, chúng tôi khuyên bạn nên sử dụng module worker hoặc event MPM. Bạn có thể kích hoạt các mô-đun này bằng cách bỏ # các dòng sau trong tệp cấu hình Apache của mình:

LoadModule mpm_worker_module modules/mod_mpm_worker.so

hoặc

LoadModule mpm_event_module modules/mod_mpm_event.so

II. Tăng số lượng tiến trình/luồng con

Để xử lý khối lượng lớn yêu cầu gửi đến, bạn cần tăng số lượng tiến trình hoặc luồng con mà Apache có thể tạo. Số lượng tiến trình hoặc luồng con bạn nên tạo tùy thuộc vào lượng bộ nhớ và tài nguyên CPU có sẵn trên máy chủ của bạn.

Để tăng số lượng tiến trình hoặc luồng con, bạn cần sửa đổi các giá trị StartServers,  MaxClients,  MaxSpareServersvà  MinSpareServers trong tệp cấu hình Apache của mình.

StartServers là số tiến trình con được khởi chạy khi Apache khởi động. MaxClients là số lượng kết nối đồng thời tối đa mà Apache có thể xử lý. MaxSpareServers là số tiến trình con nhàn rỗi tối đa mà Apache duy trì. MinSpareServers là số tiến trình con nhàn rỗi tối thiểu mà Apache duy trì.

Ví dụ: để đặt  StartServers thành 10,  MaxClients thành 500,  MaxSpareServers thành 200 và  MinSpareServers thành 10, bạn có thể thêm các dòng sau vào tệp cấu hình Apache của mình:

StartServers 10
MaxClients 500
MaxSpareServers 200
MinSpareServers 10

Bạn cũng nên cân nhắc việc đặt  ServerLimitcó cùng giá trị với  MaxClients. Điều này đảm bảo rằng Apache không tạo ra nhiều tiến trình con hơn mức cần thiết.

Một tham số quan trọng khác có thể giúp tăng số lượng tiến trình/luồng con trong Apache là giá trị  MaxRequestWorkers . Giá trị này chỉ định số lượng yêu cầu đồng thời tối đa mà Apache có thể xử lý.

Theo mặc định,  MaxRequestWorkers giá trị được đặt thành 256. Tuy nhiên, giá trị này có thể tăng lên để cho phép Apache xử lý đồng thời nhiều yêu cầu hơn.

Để điều chỉnh  MaxRequestWorkers giá trị, bạn có thể thêm dòng sau vào tệp cấu hình Apache của mình:

MaxRequestWorkers 500

Trong ví dụ trên, chúng tôi đã đặt  MaxRequestWorkers giá trị thành 500, có nghĩa là Apache có thể xử lý tối đa 500 yêu cầu đồng thời.

Điều quan trọng cần lưu ý là việc tăng  MaxRequestWorkers giá trị cũng làm tăng dung lượng bộ nhớ được Apache sử dụng. Do đó, bạn nên đảm bảo rằng máy chủ của bạn có đủ bộ nhớ để xử lý các yêu cầu bổ sung.

III. Kích hoạt KeepAlive

Tính năng KeepAlive cho phép client sử dụng lại cùng một kết nối với máy chủ cho nhiều yêu cầu, giảm chi phí tạo kết nối mới cho mỗi yêu cầu. Kích hoạt KeepAlive có thể cải thiện đáng kể hiệu suất trang web của bạn.

Để bật KeepAlive, bạn cần đặt KeepAlive thành On. Bạn cũng nên đặt KeepAliveTimeout thành một giá trị phù hợp với trang web của mình. Ví dụ: để đặt thời gian chờ KeepAlive thành 5 giây, bạn có thể thêm các dòng sau vào tệp cấu hình Apache của mình:

KeepAlive On
KeepAliveTimeout 5
MaxKeepAliveRequests 100 

IV. Kích hoạt bộ nhớ đệm

Bộ nhớ đệm là quá trình lưu trữ dữ liệu được truy cập thường xuyên trong bộ nhớ hoặc trên đĩa, giảm số lượng yêu cầu cần được máy chủ xử lý. Kích hoạt bộ nhớ đệm có thể cải thiện đáng kể hiệu suất trang web của bạn, đặc biệt đối với nội dung tĩnh.

Apache cung cấp một số module bộ nhớ đệm, chẳng hạn như mod_cachevà mod_disk_cache. Để bật bộ nhớ đệm, bạn cần tải module bộ nhớ đệm thích hợp và định cấu hình nó trong tệp cấu hình Apache của bạn. Ví dụ: để bật bộ nhớ đệm nội dung tĩnh bằng cách sử dụng mod_disk_cache, bạn có thể thêm các dòng sau vào tệp cấu hình Apache của mình:

LoadModule cache_module modules/mod_cache.so
LoadModule disk_cache_module modules/mod_disk_cache.so
CacheEnable disk /
CacheRoot /var/cache/apache2/mod_disk_cache
CacheDirLevels 2
CacheDirLength 1

Những dòng này kích hoạt các module mod_cachevà mod_disk_cachevà định cấu hình bộ nhớ đệm cho thư mục gốc ( /) bằng bộ đệm đĩa. Lệnh này CacheRootchỉ định thư mục nơi nội dung được lưu trong bộ đệm sẽ được lưu trữ, đồng thời CacheDirLevelsCacheDirLengthkiểm soát cấu trúc phân cấp thư mục bộ đệm.

V. Sử dụng tính năng nén dữ liệu trong Apache

Nén là quá trình giảm kích thước dữ liệu được gửi qua mạng bằng cách loại bỏ thông tin dư thừa. Việc kích hoạt tính năng nén có thể làm giảm đáng kể lượng dữ liệu cần truyền đi, cải thiện hiệu suất trang web của bạn.

Apache cung cấp một module nén có tên mod_deflate. Để bật tính năng nén, bạn cần tải mod_deflatemodule và định cấu hình nó trong tệp cấu hình Apache của mình.

Ví dụ: để bật tính năng nén nội dung dựa trên văn bản, bạn có thể thêm các dòng sau vào tệp cấu hình Apache của mình:

LoadModule deflate_module modules/mod_deflate.so
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json

Những dòng này kích hoạt mod_deflate mô-đun và chỉ định loại nội dung cần được nén.

VI. Hạn chế quyền truy cập vào tài nguyên

Việc hạn chế quyền truy cập vào tài nguyên có thể giúp giảm tải cho máy chủ và cải thiện hiệu suất trang web của bạn. Bạn có thể giới hạn quyền truy cập vào tài nguyên bằng cách sử dụng các lệnh OrderAllowvà Denytrong tệp cấu hình Apache của mình.

Ví dụ: để giới hạn quyền truy cập vào thư mục có tên admin, bạn có thể thêm các dòng sau vào tệp cấu hình Apache của mình:

<Directory /var/www/html/admin>
    Order deny,allow
    Deny from all
    Allow from 192.168.0.0/24
</Directory>

Những dòng này chỉ định rằng quyền truy cập vào adminthư mục sẽ bị từ chối đối với tất cả các máy khách ngoại trừ những máy khách trong 192.168.0.0/24mạng con.

VII. Tối ưu hóa tài nguyên máy chủ

Ngoài việc tối ưu hóa Apache, bạn cũng có thể tối ưu hóa tài nguyên máy chủ để đảm bảo hiệu suất và tính khả dụng tối đa cho trang web của mình.

1. Tăng giới hạn bộ nhớ và đặt Opcache

Giới hạn bộ nhớ mặc định của tập lệnh PHP có thể không đủ để xử lý khối lượng lớn yêu cầu gửi đến. Bạn có thể tăng giới hạn bộ nhớ bằng cách sửa đổi  memory_limit lệnh trong tệp cấu hình PHP của mình.

Ngoài ra, bạn cũng có thể kích hoạt Opcache, đây là bộ đệm mã byte cho các tập lệnh PHP. Opcache lưu trữ bytecode tập lệnh được biên dịch sẵn trong bộ nhớ, giảm chi phí phân tích cú pháp và biên dịch tập lệnh cho mọi yêu cầu.

Cài đặt OPCache
# For CentOS, RedHat and Alma Linux use this command :
$ sudo yum install php-opcache
# For Ubuntu and Debian use this command :
$ sudo apt-get install php-opcache

Sau khi quá trình cài đặt hoàn tất, hãy khởi động lại Apache để áp dụng các thay đổi:

$ sudo systemctl restart apache2

Đó là nó! OPcache bây giờ sẽ được cài đặt và kích hoạt trên hệ thống Ubuntu của bạn. Bạn có thể xác minh rằng nó đã được bật bằng cách kiểm tra cấu hình PHP của bạn.

2. Thiết lập tệp Hoán đổi hoặc phân vùng Hoán đổi

Nếu máy chủ của bạn hết bộ nhớ, nó có thể bắt đầu sử dụng đĩa cứng làm bộ nhớ ảo, điều này có thể làm giảm đáng kể hiệu suất trang web của bạn. Bạn có thể tránh điều này bằng cách thiết lập tệp Hoán đổi hoặc phân vùng Hoán đổi, cung cấp thêm bộ nhớ ảo khi bộ nhớ vật lý cạn kiệt.

Để thiết lập tệp Hoán đổi, bạn có thể sử dụng các lệnh sau:

$ sudo fallocate -l 1G /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile

Các lệnh này tạo tệp Hoán đổi 1GB, đặt quyền cho tệp, định dạng tệp là Hoán đổi và bật Hoán đổi.

3. Kích hoạt tính năng nén GZIP

Kích hoạt tính năng nén GZIP có thể giảm kích thước dữ liệu được truyền qua mạng, cải thiện hiệu suất trang web của bạn. Bạn có thể kích hoạt tính năng nén GZIP bằng cách tải  deflatemodule trong Apache và định cấu hình nó trong tệp cấu hình Apache của bạn.

Để bật tính năng nén GZIP, bạn có thể sử dụng các lệnh sau:

$ sudo a2enmod deflate
$ sudo service apache2 restart

Các lệnh này kích hoạt  deflate mô-đun trong Apache và khởi động lại dịch vụ Apache. Sau khi  deflate mô-đun được bật, Apache sẽ tự động nén nội dung bằng GZIP khi máy khách hỗ trợ nó.

Như vậy Long Vân đã hướng dẫn Quý khách tối ưu cấu hình Apache cho website có lưu lượng cao. Chúc Quý khách thành công.

Hướng dẫn cài đặt XAMPP trên Windows

I. XAMPP là gì?

    •   XAMPP viết tắt của Cross-Platform, được phát triển bởi Apache Friends. Đây là một ứng dụng máy chủ web mã nguồn mở và hoàn toàn miễn phí giúp các nhà phát triển tạo và thử nghiệm dụng ngay trên máy chủ web cục bộ. Xampp chứa các ứng dụng như Apache HTTP Server, MariaDB, PHP và Perl có thể được cài đặt dể dàng trên Windows, Linux hoặc MacOS.

   •   Trong bài viết này, Long Vân sẽ hướng dẫn Quý khách cách cài đặt XAMPP trên hệ điều hành Windows.

II. Hướng dẫn cài đặt XAMPP trên Windows

  1. Bước 1: Tải xuống XAMPP Truy cập trang web chính thức của XAMPP tại https://www.apachefriends.org/download.html. Tại đây, bạn có thể chọn phiên XAMPP mong muốn cho môi trường Windows và nhấn download để tải về.
  2. Bước 2: Cài đặt XAMPP
    • Chạy file cài đặt đã download về.
    • Nhấn nút Run để bắt đầu quá trình cài đặt.
    • Chọn các ứng dụng thành phần mong muốn cài đặt (MySQL, Perl, Tomcat,..) và nhấn Next.
    • Nhập đường dẫn cho nơi bạn muốn cài đặt XAMPP và nhấn nút Next.
    • Chọn ngôn ngữ mà bạn muốn sử dụng và nhấn nút “OK”.
    • Nhấn nút Install để bắt đầu quá trình cài đặt.
    • Sau khi tải xong nhấn finish để hoàn tất .

III. Cách cấu hình XAMPP trên Windows

  • Trong cửa sổ làm việc XAMPP Control Panel, trong phần Modules, bạn sẽ tìm thấy tất cả các module ứng dụng có sẵn. Để chạy một module, chỉ nhận nhấn vào Start.
  • Khi bạn chạy một module như Apache và MySQL, Xampp cũng sẽ hiển thị số ID tiến trình (PID) và số cổng TCP/IP (Port) tương ứng. Có thể nhấp vào nút Admin để có quyền truy cập vào trang tổng quan quản trị cho từng service và xác minh rằng mọi thứ đang hoạt động chính xác.
  • Lưu ý: trong trường hợp các port mặc định của module bị chiếm dụng bởi một ứng dụng khác, module có thể bị lỗi khi khởi chạy.
  • Nút Config để cấu hình mô-đun nào sẽ tự động khởi động khi bạn khởi chạy XAMPP.

  • Nút Netstart sẽ cung cấp cho bạn danh sách các service hiện đang truy cập mạng, bao gồm địa chỉ TCP/IP và cổng, cũng nhự thông tin ID tiến trình.
  • Cuối cùng, bạn sẽ thấy phần nhật ký, nơi bạn có thể xem qua những gì sẽ xảy ra mỗi khi bạn khởi động mô-đun hoặc thay đổi cài đặt. 
  • Để kiểm tra hoạt động của module Apache, bạn có thể truy cập http://localhost/ hoặc địa chỉ ip để vào kiểm tra.

Như vậy, Long Vân đã hoàn thành hướng dẫn Quý khách cách cài đặt XAMPP trên dịch vụ Windows của Long Vân. Chúc Quý khách thành công!