##
## Server-Pool Size Regulation (MPM specific)
##
# the MPM (multiprocessing module) is not a dynamically loadable module in the
# sense of other modules. It is a compile time decision which one is used. We
# provide different apache2 MPM packages, containing different httpd binaries
# compiled with the available MPMs. See APACHE_MPM in /etc/sysconfig/apache2.
# prefork MPM
# number of server processes to start
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#startservers
StartServers 5
# minimum number of server processes which are kept spare
# https://httpd.apache.org/docs/2.4/mod/prefork.html#minspareservers
MinSpareServers 5
# maximum number of server processes which are kept spare
# https://httpd.apache.org/docs/2.4/mod/prefork.html#maxspareservers
MaxSpareServers 10
# highest possible MaxRequestWorkers setting for the lifetime of the Apache process.
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#serverlimit
ServerLimit 256
# maximum number of server processes allowed to start (formerly MaxClients)
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxrequestworkers
MaxRequestWorkers 256
# maximum number of requests a server process serves
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxconnectionsperchild
MaxConnectionsPerChild 10000
# worker MPM
# initial number of server processes to start
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#startservers
StartServers 3
# minimum number of worker threads which are kept spare
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#minsparethreads
MinSpareThreads 25
# maximum number of worker threads which are kept spare
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxsparethreads
MaxSpareThreads 75
# upper limit on the configurable number of threads per child process
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#threadlimit
ThreadLimit 64
# maximum number of simultaneous client connections (formerly MaxClients)
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxrequestworkers
MaxRequestWorkers 256
# number of worker threads created by each child process
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#threadsperchild
ThreadsPerChild 25
# maximum number of requests a server process serves
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxconnectionsperchild
MaxConnectionsPerChild 10000
# event MPM
# initial number of server processes to start
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#startservers
StartServers 3
# minimum number of worker threads which are kept spare
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#minsparethreads
MinSpareThreads 25
# maximum number of worker threads which are kept spare
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxsparethreads
MaxSpareThreads 75
# upper limit on the configurable number of threads per child process
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#threadlimit
ThreadLimit 64
# maximum number of simultaneous client connections (formerly MaxClients)
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxrequestworkers
MaxRequestWorkers 256
# number of worker threads created by each child process
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#threadsperchild
ThreadsPerChild 25
# maximum number of requests a server process serves
# https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxconnectionsperchild
MaxConnectionsPerChild 10000
# limit concurrent connections per process
# https://httpd.apache.org/docs/2.4/mod/event.html#asyncrequestworkerfactor
AsyncRequestWorkerFactor 2
#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On
#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 15
#
# MaxRanges: Maximum number of Ranges in a request before
# returning the entire resource, or one of the special
# values 'default', 'none' or 'unlimited'.
# Default setting is to accept 200 Ranges.
#MaxRanges unlimited
#
# EnableMMAP: Control whether memory-mapping is used to deliver
# files (assuming that the underlying OS supports it).
# The default is on; turn this off if you serve from NFS-mounted
# filesystems. On some systems, turning it off (regardless of
# filesystem) can improve performance; for details, please see
# https://httpd.apache.org/docs/2.4/mod/core.html#enablemmap
#
#EnableMMAP off
#
# EnableSendfile: Control whether the sendfile kernel support is
# used to deliver files (assuming that the OS supports it).
# The default is on; turn this off if you serve from NFS-mounted
# filesystems. Please see
# https://httpd.apache.org/docs/2.4/mod/core.html#enablesendfile
#
EnableSendfile on
#
# The following directives modify normal HTTP response behavior to
# handle known problems with browser implementations.
#
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
#
# The following directive disables redirects on non-GET requests for
# a directory that does not include the trailing slash. This fixes a
# problem with Microsoft WebFolders which does not appropriately handle
# redirects for folders with DAV methods.
# Same deal with Apple's DAV filesystem and Gnome VFS support for DAV.
#
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully