How to optimize Apache server performance
When configuring the website, you must fully utilize the system resources, squeeze out all the potential of the system, and maximize the website speed. Apache is an intermediate bridge between user browsing and website data. But here, although we don't do much, if we take care of it carefully, some settings will have immediate results.
1. When installing Apache, you must choose the MPM correctly
If you want the best performance of Apache, So the first step is to choose the right MPM. (Recommended learning: Apache Server)
Apache has 3 MPMs, which are: event, prefork and worker.
Among them, event MPM is more suitable for situations where there are a large number of continuous connections. The advantage of KeepAlive is that it can respond to multiple requests in the same TCP connection: in this way, an HTML document containing a large number of images can be accelerated by 50%. Set KeepAlive to On in the Apahce configuration file httpd.conf to start KeepAlive.
prefork is a non-threaded MPM. Its characteristics are: although it is not very fast, it is very stable. It isolates each request, so if one request fails, it does not affect other requests. The most important parameter when using prefork is MaxClients.
The MaxClients value should be large enough so that it can perform well during peak access times; but at the same time it should not be too large, causing the memory required by Apache to exceed the size of physical memory.
Worker is a newly developed MPM in the Apache2 version, which is much faster than prefork. Moreover, due to the use of multi-threads for access processing, it can handle a relatively large number of requests, and the system resource usage is smaller than that of a process-based server. Workers are the main usage of Apache 2.
Worker has two important configuration parameters: ThreadsPerChild and MaxClients. ThreadsPerChild is used to control the number of threads allowed to be created for each child process, and MaxClients is used to control the total number of threads allowed to be created.
So, how to choose these 3 MPMs?
If you need better scalability, you can choose worker or event (because they are threaded MPM); if you need better stability and compatibility (such as adapting to some old software) , you can choose prefork. "From prefork to worker: Modifying ubuntu apache working mode"
If you still can't evaluate your needs and still don't know which MPM you should choose, then it is recommended to use worker.
2. Apache configuration optimization
In Ubuntu, the main configuration file of Apache is /etc/apache2/apache.conf. The following configuration is for this file.
(1) Turn off DNS query
HostnameLookups has been set to off by default, be sure to keep this setting. If you need to count client DNS, you can use third-party software to do so.
(2) Optimize MaxClients
When Apache2 starts, it will create some processes (the number set by StartServer in the configuration file) and maintain a maximum number of MaxClients ;Every connection request exceeding this number will be queued.
The above is the detailed content of How to optimize Apache server performance. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

To set up a CGI directory in Apache, you need to perform the following steps: Create a CGI directory such as "cgi-bin", and grant Apache write permissions. Add the "ScriptAlias" directive block in the Apache configuration file to map the CGI directory to the "/cgi-bin" URL. Restart Apache.

When the Apache 80 port is occupied, the solution is as follows: find out the process that occupies the port and close it. Check the firewall settings to make sure Apache is not blocked. If the above method does not work, please reconfigure Apache to use a different port. Restart the Apache service.

Apache connects to a database requires the following steps: Install the database driver. Configure the web.xml file to create a connection pool. Create a JDBC data source and specify the connection settings. Use the JDBC API to access the database from Java code, including getting connections, creating statements, binding parameters, executing queries or updates, and processing results.

There are 3 ways to view the version on the Apache server: via the command line (apachectl -v or apache2ctl -v), check the server status page (http://<server IP or domain name>/server-status), or view the Apache configuration file (ServerVersion: Apache/<version number>).

The steps to start Apache are as follows: Install Apache (command: sudo apt-get install apache2 or download it from the official website) Start Apache (Linux: sudo systemctl start apache2; Windows: Right-click the "Apache2.4" service and select "Start") Check whether it has been started (Linux: sudo systemctl status apache2; Windows: Check the status of the "Apache2.4" service in the service manager) Enable boot automatically (optional, Linux: sudo systemctl

To delete an extra ServerName directive from Apache, you can take the following steps: Identify and delete the extra ServerName directive. Restart Apache to make the changes take effect. Check the configuration file to verify changes. Test the server to make sure the problem is resolved.

Apache cannot start because the following reasons may be: Configuration file syntax error. Conflict with other application ports. Permissions issue. Out of memory. Process deadlock. Daemon failure. SELinux permissions issues. Firewall problem. Software conflict.

How to view the Apache version? Start the Apache server: Use sudo service apache2 start to start the server. View version number: Use one of the following methods to view version: Command line: Run the apache2 -v command. Server Status Page: Access the default port of the Apache server (usually 80) in a web browser, and the version information is displayed at the bottom of the page.
