Xác định dịch vụ Apache đang sử dụng cơ chế MPM gì?

411
31-03-2018
Xác định dịch vụ Apache đang sử dụng cơ chế MPM gì?

MPM (Multi processing module) là một cơ chế hoạt động của Web Server Apache, cơ chế này sẽ quyết định cách thức tiếp nhận và xử lý các kết nối request từ người dùng. Vậy làm thế nào để Xác định dịch vụ Apache đang sử dụng cơ chế MPM nào? Bizfly Cloud sẽ chỉ ra thông tin rõ ràng hơn qua bài viết dưới đây nhé!

MPM (Multi processing module) là thành phần của máy chủ apache, xác định cách xử lý nhiều clients hoặc kết nối. Apache khá linh hoạt và có nhiều mpms khác nhau có thể được sử dụng với apache tùy thuộc vào nhu cầu. Một số mpms phổ biến trên Linux là:

  • Worker
  • Prefork
  • mpm-ITK
  • Peruser

Mỗi mpm đều có ưu và nhược điểm riêng.

Apache chỉ có thể chạy một trong số mpms tại một thời điểm. Mpms không phải là các modules được tải bởi apache. Thay vào đó chúng được compile vào apache.

Để kiểm tra mpm nào đang được sử dụng bởi apache, chạy lệnh sau:

Ubuntu

Trên Ubuntu, Apache được gọi là apache2. Đầu tiên xác định vị trí apache2 binary.

$ whereis apache2 

apache2: /usr/sbin/apache2 /etc/apache2 /usr/lib/apache2 /usr/lib64/apache2 /usr/share/apache2 /usr/share/man/man8/apache2.8.gz

Bây giờ chạy binary  apache với tùy chọn "l". Nó cung cấp một danh sách tất cả các module đã được compile thành apache.

$ /usr/sbin/apache2 -l 

Compiled in modules: 

 core.c 

 mod_log_config.c 

 mod_logio.c 

 worker.c 

 http_core.c 

 mod_so.c

Trong output ở trên có thể thấy rằng worker.c đã được compile thành apache. Vì vậy,  mpm worker đang được sử dụng.

Một cách khác để xác định mpm là bằng cách thực hiện apache binary  với tùy chọn "V":

Hướng dẫn xác định cơ chế MPM được sử dụng bởi dịch vụ Apache - Ảnh 1.

Nó cung cấp thông tin khác nhau về MPM (name, threaded, forked):

Server MPM:        Worker 

      threaded:        yes (fixed thread count) 

          forked:        yes (variable process count)

Cú pháp ngắn hơn cho lệnh trên sử dụng grep:

$ /usr/sbin/apache2 -V | grep MPM 

Server MPM:    Worker 

-D APACHE_MPM_DIR="server/mpm/worker"

CentOS

Trên CentOS Apache được gọi là httpd:

# whereis httpd 

httpd: /usr/sbin/httpd /etc/httpd.old /etc/httpd

Liệt kê chi tiết apache:

# /usr/sbin/httpd -l 

/usr/sbin/httpd: line 63: ulimit: open files: cannot modify limit: Operation not permitted 

/usr/sbin/httpd: line 64: ulimit: open files: cannot modify limit: Operation not permitted 

/usr/sbin/httpd: line 65: ulimit: open files: cannot modify limit: Operation not permitted 

Compiled in modules: 

     core.c 

     mod_proxy_balancer.c 

     mod_ssl.c 

     prefork.c 

     http_core.c 

     mod_mime.c 

......

Nó cho thấy prefork.c. Vì vậy, prefork mpm đang chạy.

Hướng dẫn xác định cơ chế MPM được sử dụng bởi dịch vụ Apache - Ảnh 2.

Thông tin về mpm là:

Server MPM:      Prefork 

      threaded:      no 

          forked:      yes (variable process count)

Dịch từ: binarytides.com/check-which-mpm-multi-processing-module-apache-is-running/

Nguồn: Bizfly Cloud chia sẻ

TAGS: apache
SHARE