acelerar a apache web server

Optimizar o acelerar a Apache web server

Con este procedimiento que explicamos en este segmento, vamos a optimizar o acelerar a Apache Web Server, para que las páginas de PHP que sirva carguen hasta un 90% más rápidas.

Realmente lo que hace que nuestro servidor web acelere su respuesta a solicitudes de clientes, es un módulo llamado PHP-FPM, es una versión avanzada de FastCGI y que se usa para sitios con alto tráfico de visitas. Hace unos años implemente un servidor web con Apache para un cliente cuyo sitio web desbordaba las 1000 visitas por minuto (el cliente no me había proporcionado ese dato), y entonces Apache colapsaba (hasta el WAF interpretaba tanto tráfico como un ataque, por lo que tuve que desactivarlo). Implementando esta solución Apache volvía funcionar más fuerte y más rápido que nunca.

Acelerar a Apache web server con PHP-FPM


Instalamos a PHP-FPM. La instalación del servidor web Apache la hacemos con el procedimiento de siempre que ya hemos visto en este blog, solo que ahora adicionamos estos pasos:

Primero miramos la versión de PHP activada como módulo de Apache

a2query -m | grep php

Como yo tengo la versión 4 de PHP, instalo la versión 4 de FPM

sudo apt install php7.4-fpm libapache2-mod-fcgid

Deshabilitamos a Prefork y a PHP 7.4, y habilitamos worker, fastcgi y otros respectivamente:

sudo a2dismod php7.4
sudo a2dismod mpm_prefork

sudo a2enmod mpm_worker
sudo a2enmod proxy_fcgi setenvif proxy
sudo a2enmod headers
sudo a2enmod rewrite
sudo a2enmod userdir

Aplicamos los siguientes ajustes al archivo /etc/php/7.4/fpm/php.ini

file_uploads = On
allow_url_fopen = On
memory_limit = 512M
upload_max_filesize = 200M
post_max_size = 200M
max_execution_time = 360
max_input_time = 360
date.timezone = America/La_Paz

Podemos renombrar el archivo del pool, de www.conf al que queramos (puede ser el nombre de nuestra página)

sudo mv /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/mi_pagina.conf

Luego abrimos nuestro archivo del pool y le aplicamos los siguientes parámetros

Comenta la línea listen = /run/php/php7.4-fpm.sock y la cambiamos para que escuche por socket 127.0.0.1:9000

listen = 127.0.0.1:9000 (puerto por el que PHP-FPM recibirá las conexiones del virtual host de Apache)

Aplicamos estos otros ajustes en el mismo pool

pm = dynamic
pm.max_children = 12000
pm.start_servers = 8 (número de procesos hijos que el pool creará al iniciar el proceso
padre “php7.0-fpm”, este no puede ser mayor a pm.max_spare_servers)
pm.min_spare_servers = 2 (este número debe ser menor o igual al de pm.start_servers)
pm.max_spare_servers = 8
pm.max_requests = 1200 (ó 0 para dejarlo sin límite)
rlimit_files = 16384 (opcional)

Ajustes en Apache


Abrimos el archivo de configuración de nuestro virtual host, y le adicionamos la siguiente línea justo encima <Directory «/var/www/nuestra_pagina«>

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/nuestra_pagina/$1 timeout=1800

Iniciamos el servicio de PHP-FPM

sudo service php7.4-fpm start

Reiniciamos a Apache Web Server

sudo service apache2 restart

Ya con esto tenemos a nuestro servidor web Apache funcionando como un bólido.

Apache y PHP-FPM con varios dominios o sitios


Para que PHP-FPM nos ayude con múltiples dominios o sitios, solo debemos crear un pool por cada sitio, dentro del directorio de siempre /etc/php/7.4/fpm/pool.d/. Por ejemplo, creamos el pool de otro_sitio.conf:

touch /etc/php/7.4/fpm/pool.d/otro_sitio.conf

Y le copiamos el contenido del primer pool que trabajamos, con la slavedad de que el socket debe tener definido otro puerto, por ejemplo el 9001:

listen = 127.0.0.1:9001

Y el virtualhost de Apache debe apuntar a ese nuevo socket

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9001/var/www/otro_sitio/$1 timeout=1800

Verificando el funcionamiento de PHP-FPM


Con los siguientes comandos podemos verificar el funcionamiento de PHP-FPM

sudo ps -faux | grep fpm
sudo netstat -putan | grep fpm

El ajuste que acabamos de ver para acelerar a Apache Web Server, no interfiere con otros módulos de aplicaciones que tengamos funcionando con Apache, como por ejemplo, Flask. Es totalmente transparente.

Y eso es todo.

     Puedes ver cómo optimizar el rendimiento de tu servidor Linux    

Afinación de un servidor Proxy con firewall

     También puedes ver cómo optimizar tu máquina Linux    

Optimizar o acelerar tu máquina con Linux


Valora este artículo

Optimizar o acelerar a Apache web server
5,0 rating based on 12.345 ratings
Overall rating: 5 out of 5 based on 1 reviews.
Nombres
Email
Titulo
Calificanos
Contenido

gracias por el aporte

★★★★★
“ super, muy bueno.”
- Andres Mauricio Posso
Comparte esto en
Publicado en GNU Linux.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *