Bobcares

How to configure MPM directives in Apache

by | Jan 18, 2021

Wondering how to configure MPM directives? We can help you with it.

Here at Bobcares, we have seen several such Apache related queries as part of our Server Management Services for web hosts and online service providers.

Today, we’ll take a look at how to configure MPM directives on Apache.

 

Why Apache MPM directives are required

Traditionally, Apache used the default configuration but they don’t know how Apache works, how it handles an incoming connection or multiple processes.

So Apache 2 introduced Multi-Processing Modules or MPMs.

Their main job is to change the basic functionality of the webserver. They do this by modifying how Apache listens to the network, accepts, and handles requests.

The different MPM modules are Prefork, Worker, Event, and other MPMs. let’s just take a glimpse of those MPM modules.

Prefork MPM:

It launches multiple child processes. Each child process handles one connection at a time. Also, it uses high memory in comparison to worker MPM.

Prefork uses high memory when compared to worker MPM. By default, Prefork MPM is used by the Apache2 server. Also, it always runs a few minimum (MinSpareServers) defined processes as spare, so new requests do not need to wait for a new process to start.

Worker MPM:

It generates multiple child processes similar to prefork. Each child process runs many threads. Each thread handles one connection at a time.

This MPM implements a hybrid multi-process multi-threaded server. Moreover, Worker MPM uses low memory in comparison to Prefork MPM.

Event MPM:

It was introduced in Apache 2.4. It is pretty similar to worker MPM but it designed for managing high loads.

This MPM allows more requests to be served simultaneously by passing off some processing work to supporting threads. Using this MPM Apache tries to fix the ‘keep alive problem’ faced by other MPM.

 

How to configure MPM directives

Now let’s take a look at how our Support Engineers configure the MPM directives.

 

Core-managed CentOS 6/7 Servers

On CentOS servers, Apache configuration files are located in /etc/httpd/.

1. First, we log in to the server over SSH or FTP.

2. Next, we create an optimization file. It is necessary for the optimization file to be loaded last so that it will override all other previous settings. We name the file as z-optimize.conf.

touch /etc/httpd/conf.d/z-optimize.conf

3. Then we open the file with vim editor:

vim /etc/httpd/conf.d/z-optimize.conf

4. Now we input necessary directive change, using IfModule statements for compatibility.

configure mpm directives

5. Finally, we save the file and reload Apache.

service httpd restart

 

Core-managed Ubuntu 14.04/16.04 LTS Servers

On Ubuntu servers, Apache configuration files are located in /etc/apache2/.

1. First, we backup existing apache2.conf file:

cp -p /etc/apache2/apache2.conf{,.bak.$(date +%F_%H%M%S)}
ls -lah /etc/apache2/apache2.conf*

2. Next, we open the file using vim editor:

vim /etc/apache2/apache2.conf

3. Then we append the necessary directive changes to the very bottom of the config file.

configure mpm directives

4. Finally, we save the file and reload Apache.

apache2ctl reload

 

Fully-managed CentOS 6/7 cPanel Servers

cPanel users handle all configurations by using the WHM and cPanel interfaces. Moreover, it is simple to set up an optimization configuration file. Also, there are two ways to compose an optimized configuration file via the command line over SSH/FTP or within the WHM interface.

 

1. Command Line Method (SSH/FTP)

The Apache configuration files on cPanel servers are stored in: /usr/local/apache/conf/includes/

However, we can use several included files for optimization. Also, it is necessary for the optimization file to be loaded last so that it will override all other previous settings.

1. First, we log in to the server with SSH or FTP.

2. Next, we open the post_virtualhost_global.conf file using vim editor.

vim /usr/local/apache/conf/includes/post_virtualhost_global.conf

3. Then we input the necessary directive change, using IfModule statements for compatibility.

configure mpm directives

4. Finally, we save the file and reload Apache.

/scripts/restartsrv_apache

Reload Apache PHP FPM servers.

/scripts/restartsrv_apache_php_fpm

 

2. WHM Method

1. First, we log in to Webhost Manager (WHM).
2. Next, we type apache in the quick find box and click on Apache Configuration in the Service Configuration section.
3. Then we click on Include Editor.
4. After that, we scroll down to Post VirtualHost Include.
5. Here, we select All Versions from the drop-down.
6. In the box, we input the necessary directives for optimization.
configure mpm directives
7. Then we click the Update button when finished to save the change.
8. On the left-hand navigation pane in the Restart Services section at the bottom, we click on HTTP Server(Apache).
9. Then we click on the Yes button.
10. Back to the left-hand navigation pane in the Restart Services section at the bottom, we click on PHP-FPM services for Apache.
11. Finally, we click on the Yes button to complete the configuration.

[Need any further assistance with Apache queries? – We are here to help you.]

 

Conclusion

In short, it is quite easy to configure MPM directives. For that, we need to log into the server and create an optimization file and add the necessary directive change. Today, we saw how our Support Engineers configure MPM directives in the Apache server.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

var google_conversion_label = "owonCMyG5nEQ0aD71QM";

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.

Privacy Preference Center

Necessary

Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID - Preserves user session state across page requests.

gdpr[consent_types] - Used to store user consents.

gdpr[allowed_cookies] - Used to store user allowed cookies.

PHPSESSID, gdpr[consent_types], gdpr[allowed_cookies]
PHPSESSID
WHMCSpKDlPzh2chML

Statistics

Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

_ga - Preserves user session state across page requests.

_gat - Used by Google Analytics to throttle request rate

_gid - Registers a unique ID that is used to generate statistical data on how you use the website.

smartlookCookie - Used to collect user device and location information of the site visitors to improve the websites User Experience.

_ga, _gat, _gid
_ga, _gat, _gid
smartlookCookie
_clck, _clsk, CLID, ANONCHK, MR, MUID, SM

Marketing

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

IDE - Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.

test_cookie - Used to check if the user's browser supports cookies.

1P_JAR - Google cookie. These cookies are used to collect website statistics and track conversion rates.

NID - Registers a unique ID that identifies a returning user's device. The ID is used for serving ads that are most relevant to the user.

DV - Google ad personalisation

_reb2bgeo - The visitor's geographical location

_reb2bloaded - Whether or not the script loaded for the visitor

_reb2bref - The referring URL for the visit

_reb2bsessionID - The visitor's RB2B session ID

_reb2buid - The visitor's RB2B user ID

IDE, test_cookie, 1P_JAR, NID, DV, NID
IDE, test_cookie
1P_JAR, NID, DV
NID
hblid
_reb2bgeo, _reb2bloaded, _reb2bref, _reb2bsessionID, _reb2buid

Security

These are essential site cookies, used by the google reCAPTCHA. These cookies use an unique identifier to verify if a visitor is human or a bot.

SID, APISID, HSID, NID, PREF
SID, APISID, HSID, NID, PREF