Module trong Apache

Chức năng của Server Apache hầu hết được mở rộng nhờ các module. Các module nạp vào có 2 loại

  • static có nghĩa là module đó được tích hợp vào trong mã chạy Apache (tích hợp khi build từ code), module này luôn có - không hủy được.
  • shared có nghĩa module đó nằm trên một file độc lập, bạn cấu hình đề khi Apache chạy nó tải vào, nếu chức năng của module đó bạn không cần nữa thì không tải.

Kiểm tra các module đang dùng

# httpd -M

Loaded Modules:
     core_module (static)
     so_module (static)
     http_module (static)
     access_compat_module (shared)
     actions_module (shared)
     alias_module (shared)
     allowmethods_module (shared)
     auth_basic_module (shared)
     auth_digest_module (shared)
     authn_anon_module (shared)
     authn_core_module (shared)
    ...

Nạp module

Các moule được nạp vào bằng chỉ thị LoadModule

LoadModule tên_module file_module

status_module ở vị trí "modules/mod_status.so" cấu hình Apache nạp vào bằng:

LoadModule status_module "modules/mod_status.so"

Như vậy khi bạn cài đặt mới các module, thường bạn sẽ được cung cấp các file module đó (.so) sau đó muốn sử dụng thì dùng LoadModule để nạp vào, nếu không muốn nạp vào thì comment vào dòng LoadModule đó

Các module thông dụng

  • core_module
  • so_module
  • http_module
  • alias_module
    Cung cấp cơ chế ánh xạ từ url ngắn gọn đến vị trí thật trên đĩa với các chỉ thị: Alias, AliasMatch, Redirect, RedirectMatch
    Redirect 301 "/three" "http://example.com/other"    #chuyển hướng 1 url (301)
    
    #chuyển các file .gif sang một domain mới
    RedirectMatch "(.*)\.gif$" "http://other.example.com$1.jpg"
  • cache_module chức năng cache cơ sở
  • cache_disk_module lưu cache trên đĩa
  • data_module chuyển đổi URL data
  • deflate_module nén file trước khi trả về cho user
    #Ví dụ, file .html, .xml, .js, .css nén trước khi trả về cho user
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
  • filter_module chức năng filter, chuyển content của respose để filter (lục, nén, biến đổi ...) trước khi trả về cho user
  • access_compat_module
    Xác thực truy cập cơ bản với các chỉ thị như Order Deny,Allow
  • actions_module
    Chạy CGI script với chỉ thị Action, Script hay dùng để định nghĩa Handler
  • allowmethods_module
    Chỉ cho phép một số phương thức HTTP Request gửi đến (POST, GET, PUT, DELETE ...) bằng chỉ theij AllowMethods
    #ví dụ cho phép GET, POST
    AllowMethods GET POST OPTIONS
  • auth_basic_module
    Cung cấp cơ chế xác thực HTTP đơn giản (HTTP Basic Authentication)
  • auth_digest_module
    Triển khai phương pháp xác thực HTTP Digest Authentication
  • authn_anon_module
    Cho phép user nặc danh truy cập mục yêu cầu xác thực
  • authn_core_module
    Module cơ sở xây dựng các phương pháp xác thực
  • authn_dbd_module cho phép xác thực từ SQL
  • authn_dbm_module cho phép xác thực từ file DBM
  • authn_file_module xác thực từ file (text)
  • authn_socache_module quản lý cache xác thực
  • authz_core_module module xác thực cơ sở
  • authz_dbd_module xác thực
  • authz_dbm_module xác thực
  • authz_groupfile_module xác thực
  • authz_host_module xác thực từ HOST và IP
  • authz_owner_module xác thực
  • authz_user_module xác thực
  • autoindex_module

    Module Apache: mod_autoindex, tự động sinh file chỉ mục indexes của thư mục

    Một file chỉ mục có thể sinh ra từ 2 nguồn:

    • Đọc nội dung một file trong thư mục đó (thường là index.html, index.php). Trường hợp này có được nếu dùng module mod_dir với chỉ thị DirectoryIndex
    • Nội dung chỉ mục do Server Apache tự động sinh ra, đây chính là chức năng của mod_autoindex, cách sinh file xem thêm: autoindex
  • dbd_module chức năng kết nối đến SQL từ Apache
  • dumpio_module dump lỗi
  • echo_module cung cấp chỉ thị ProtocolEcho On|Off để bật tắt chế độ echo của Server Apache
  • ext_filter_module chuyển body của response cho một chương trình trước khi trả về cho user
  • headers_module cho phép tùy chỉnh thêm vào HTTP Header
  • include_module cho phép Apache parsed nội dung HTML
  • logio_module cho phép lưu log số lượng phải nhận/gửi cho mỗi request
  • negotiation_module
  • remoteip_module
  • reqtimeout_module cho phép thiết lập timeout (thời giản hế hạn) cho mỗi request
  • substitute_module cho phép tìm và thay thế body của response
  • suexec_module cho phép thiết lập user chạy CGI
  • userdir_module
  • version_module cấu hình theo từng Apache version
  • vhost_alias_module
  • dav_module chức năng WebDAV
  • dav_fs_module WebDAV
  • dav_lock_module WebDAV
  • lua_module cho phép chạy LUA Script
  • dir_module
  • env_module
  • expires_module
  • info_module
  • log_config_module
  • mime_magic_module
  • mime_module
  • rewrite_module
  • setenvif_module
  • status_module
  • slotmem_plain_module
  • slotmem_shm_module
  • socache_dbm_module
  • socache_memcache_module
  • socache_shmcb_module
  • unique_id_module
  • unixd_module
  • mpm_event_module
  • proxy_module
  • systemd_module
  • lbmethod_bybusyness_module
  • lbmethod_byrequests_module
  • lbmethod_bytraffic_module
  • lbmethod_heartbeat_module
  • proxy_ajp_module
  • proxy_balancer_module
  • proxy_connect_module
  • proxy_express_module
  • proxy_fcgi_module
  • proxy_fdpass_module
  • proxy_ftp_module
  • proxy_http_module
  • proxy_scgi_module
  • proxy_wstunnel_module
  • cgi_module