Cómo configurar Apache y PHP para sitios web de alto tráfico en un servidor Linux

Casi todos los tutoriales sobre cómo instalar la pila LAMP (Linux, Apache, MySQL, PHP) le recomendarán que utilice el módulo integrado de Apache para procesar los scripts PHP. Por ejemplo, en Ubuntu usted habilitaría esto cuando utilice un comando como sudo apt install libapache2-mod-phpto instalar un paquete. Esto, a su vez, forzaría a Apache a utilizar mpm_prefork. Cada vez que un visitante acceda a su sitio web, se lanzará un nuevo proceso para manejar esa conexión. Esto funciona bien cuando el tráfico es bajo.

Pero, se convierte en un gran problema si usted recibe una repentina ráfaga de tráfico. Por ejemplo, un post de Reddit puede incluir su sitio web, y si el post se hace popular, puede recibir miles de visitantes en sólo unos minutos.

En el mejor de los casos, si Apache es capaz de manejar la ráfaga de tráfico, algunos desafortunados visitantes pueden tener que esperar quizás entre treinta y sesenta segundos hasta que se cargue la página, lo que es absurdo en el mundo actual. En el peor de los casos, el servidor empezará a sufrir un gran retraso y algunas conexiones simplemente se interrumpirán por falta de recursos. En este caso, los visitantes verán un error en sus navegadores.

En cualquier caso, no es un buen escenario, ya que puede perder la atención de cientos o miles de lectores, clientes o fans interesados.

Desgraciadamente, PHP es un gran devorador de recursos de cualquier manera. Pero, con mpm_event, Apache puede manejar ráfagas repentinas de tráfico de una manera mucho más eficiente. Se recomienda, sin embargo, que su servidor tenga al menos 2 GB de RAM y 2 núcleos de CPU, reales o virtuales, e incluso más si espera tener picos de tráfico intensos, como más de diez visitantes por segundo. Si utiliza un servidor privado virtual, añada más núcleos de CPU virtuales a su situación y almacenamiento SSD. La RAM es secundaria.

Relacionado: Nginx vs Apache: ¿Cuál le sirve mejor en 2019?

Cómo usar Apache MPM Event y PHP-FPM en distribuciones basadas en Debian

En Debian, Ubuntu u otras distros de esta familia simplemente evite instalar el paquete «libapache2-mod-php». Cuando se instala Apache, éste utiliza el evento MPM por defecto. Pero al instalar el paquete mencionado, un script deshabilita el evento MPM y habilita el prefork MPM. El módulo PHP de Apache sólo puede funcionar (con seguridad) con mpm_prefork. Por supuesto, sin «libapache2-mod-php», no tiene procesador para los archivos PHP. Así que utilizará PHP-FPM en lugar del módulo PHP incluido en Apache. A continuación, le explicamos cómo instalar una pila LAMP en un servidor nuevo. Puede adaptar los pasos según los requisitos de su aplicación web.

Primero, inicie la sesión como root. Luego, instale Apache.

apt update && apt install apache2

En este punto puede ver que Apache efectivamente se envía con el evento MPM activado por defecto.

apachectl -V

Instale PHP-FPM.

apt install php-fpm

Verá las instrucciones para habilitar el procesador PHP en Apache.

Habilite el protocolo FastCGI.

a2enmod proxy_fcgi

Habilitar la configuración por defecto de PHP-FPM para Apache.

a2enconf php7.0-fpm

Nota: en futuras versiones de DebianUbuntu, este comando podría cambiar a otra cosa, por ejemplo.a2enconf php7.6-fpm, porque PHP-FPM sería una versión diferente.

Reinicie Apache.

systemctl restart apache2

Instale el resto de requisitos para su aplicación PHP.tfcgi:t

Deja un comentario

Este sitio web utiliza cookies para mejorar tu experiencia. Si continuas utilizando este sitio consideramos que estás de acuerdo con esto. Más información

Los ajustes de cookies en esta web están configurados para «permitir las cookies» y ofrecerte la mejor experiencia de navegación posible. Si sigues usando esta web sin cambiar tus ajustes de cookies o haces clic en «Aceptar», estarás dando tu consentimiento a esto.

Cerrar