SmythSys IT Consulting

Cómo configurar http/2 para Apache (ejemplo con Debian)

Hace unos días explicamos las ventajas de http/2, las páginas vuelan. Hoy queremos explicaros cómo activarlo en vuestro servidor Apache. En el ejemplo supondremos un servidor Debian (varía poco en otro sistema).

Apache tiene que tener el mod_http2.

Lo primero es que tu versión de Apache tiene que venir con el módulo http2  (mod_http2) compilado. Si no puedes o cambiar a una versión que lo tenga, o compilar Apache. Para poder hacerlo tu sistema necesita al menos la versión 1.2.1 de libnghttp2. Una vez comprobado, compila Apache con –enable-http2.

Http/2 funciona casi exclusivamente con SSL (https). Necesitas certificado.

Aunque no es una petición de http/2, la mayoría de los navegadores sólo hablan http/2 con certificado. Así que asegúrate que tus webs (las que quieres que vayan con http/2) lo tienen. Recuerda que puedes tener ambas cosas activadas así que puedes tener http/2 con alguna web y http/1 con otras.

Seguramente tendrás que cambiar tu Módulo de MultiProcesamiento (MPM).

Http/2  no funciona con todos los MPM. No funciona con apache mpm prefork desde apache 2.4.27. Hay que usar mpm worker o event. Pero mpm worker y event no pueden utilizar mod_php necesitan por fuerza usar fastcgi o php-fpm, así que a lo mejor también tienes que cambiar eso.

Os dejamos un ejemplo:

    apachectl stop
    apt-get install php7.1-fpm # Instala el Php-fpm Esto puede variar por la versión
    a2enmod proxy_fcgi setenvif
    a2enconf php7.1-fpm # De nuevo depende de la versión a instalar.
    a2dismod php7.1 # Deshabilita mod_php
    a2dismod mpm_prefork  # Deshabilita el prefork anterior porque sólo se puede usar un MPM
    a2enmod mpm_event  # Habilita event. Puedes habilitar worker en vez de este.
    apachectl start

Configuración.

Lo primero es activar el módulo con :

LoadModule http2_module modules/mod_http2.so

O activarlo con:

a2enmod http2
  apachectl restart

Después tienes que modificar tu fichero de configuración de Apache para decir si quieres que todas las webs vayan preferiblemente con http/2. Por ejemplo con :

Protocols h2 http/1.1

o

Protocols h2 h2c http/1.1

Como veis si no puede usar el 2 carga el protocolo en versión 1. Si, por el contrario, quieres activarlo sólo por web, por virtual host, tienes que hacer algo como:

Protocols http/1.1
<VirtualHost *:443>
    ServerName tudominio.es
    Protocols h2 http/1.1
</VirtualHost>

Recuerda reiniciar Apache para que todo se active.

2 comentarios en «Cómo configurar http/2 para Apache (ejemplo con Debian)»

Deja un comentario

Resumen de nuestra Política de Privacidad

  • Responsable: SmythSys IT Consulting SLNE.
  • Finalidad: Gestionar y moderar los comentarios.
  • Legitimación: Necesitas dar tu consentimiento para publicar un comentario.
  • Destinatarios: Tus datos se alojan en los servidores de OVH.
  • Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir los datos en la dirección del responsable (en nuestra política de privacidad).