Performance Tuning

Apache Performance Tuning Apache 2.x is a general-purpose webserver, designed to provide a balance of flexibility, portability, and performance. Although it has not been designed specifically to set benchmark records, Apache 2.x is capable of high performance in many real-world situations. Compared to Apache 1.3, release 2.x contains many additional optimizations to increase throughput and scalability. Most of these improvements are enabled by default. However, there are compile-time and run-t

Per-user web directories

Per-user web directories On systems with multiple users, each user can be permitted to have a web site in their home directory using the UserDir directive. Visitors to a URL http://example.com/~username/ will get content out of the home directory of the user "username", out of the subdirectory specified by the UserDir directive. Note that, by default, access to these directories is not enabled. You can enable access when using UserDir by uncommenting the line: #Include conf/extra/httpd-userdir

Password Formats

Password Formats Notes about the password encryption formats generated and understood by Apache. Basic Authentication There are five formats that Apache recognizes for basic-authentication passwords. Note that not all formats work on every platform: bcrypt "$2y$" + the result of the crypt_blowfish algorithm. See the APR source file crypt_blowfish.c for the details of the algorithm. MD5 "$apr1$" + the result of an Apache-specific algorithm using an iterated (1,000 times) MD5 digest of vario

Name-based Virtual Host

Name-based Virtual Host Support This document describes when and how to use name-based virtual hosts. Name-based vs. IP-based Virtual Hosts IP-based virtual hosts use the IP address of the connection to determine the correct virtual host to serve. Therefore you need to have a separate IP address for each host. With name-based virtual hosting, the server relies on the client to report the hostname as part of the HTTP headers. Using this technique, many different hosts can share the same IP

Multi-Processing Modules (MPMs)

Multi-Processing Modules (MPMs) This document describes what a Multi-Processing Module is and how they are used by the Apache HTTP Server. Introduction The Apache HTTP Server is designed to be a powerful and flexible web server that can work on a very wide variety of platforms in a range of different environments. Different platforms and different environments often require different features, or may have different ways of implementing the same feature most efficiently. Apache httpd has al

MPM worker

Apache MPM worker Description: Multi-Processing Module implementing a hybrid multi-threaded multi-process web server Status: MPM ModuleIdentifier: mpm_worker_module SourceFile: worker.c Summary This Multi-Processing Module (MPM) implements a hybrid multi-process multi-threaded server. By using threads to serve requests, it is able to serve a large number of requests with fewer system resources than a process-based server. However, it retains much of the stability of a process-based server by

MPM winnt

Apache MPM winnt Description: Multi-Processing Module optimized for Windows NT. Status: MPM ModuleIdentifier: mpm_winnt_module SourceFile: mpm_winnt.c Summary This Multi-Processing Module (MPM) is the default for the Windows NT operating systems. It uses a single control process which launches a single child process which in turn creates threads to handle requests Capacity is configured using the ThreadsPerChild directive, which sets the maximum number of concurrent client connections. By de

MPM prefork

Apache MPM prefork Description: Implements a non-threaded, pre-forking web server Status: MPM ModuleIdentifier: mpm_prefork_module SourceFile: prefork.c Summary This Multi-Processing Module (MPM) implements a non-threaded, pre-forking web server. Each server process may answer incoming requests, and a parent process manages the size of the server pool. It is appropriate for sites that need to avoid threading for compatibility with non-thread-safe libraries. It is also the best MPM for isolat

MPM os2

Apache MPM os2 Description: Hybrid multi-process, multi-threaded MPM for OS/2 Status: MPM ModuleIdentifier: mpm_mpmt_os2_module SourceFile: mpmt_os2.c Summary The Server consists of a main, parent process and a small, static number of child processes. The parent process' job is to manage the child processes. This involves spawning children as required to ensure there are always StartServers processes accepting connections. Each child process consists of a pool of worker threads and a main th

MPM netware

Apache MPM netware Description: Multi-Processing Module implementing an exclusively threaded web server optimized for Novell NetWare Status: MPM ModuleIdentifier: mpm_netware_module SourceFile: mpm_netware.c Summary This Multi-Processing Module (MPM) implements an exclusively threaded web server that has been optimized for Novell NetWare. The main thread is responsible for launching child worker threads which listen for connections and serve them when they arrive. Apache HTTP Server always t