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.
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.
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.
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.
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.
0 Comments