(Plesk para Linux) Soporte de HTTP/2 en Plesk
Información general
HTTP/2 (también conocido como HTTP/2.0 y HTTP 2.0) es la segunda versión más importante del protocolo de red HTTP usado por la red. Ratificado en mayo del 2015, HTTP/2 se concibió para resolver algunos problemas significativos de rendimiento de HTTP 1.1. Si desea examinar todas las ventajas de este protocolo, haga clic aquí. Actualmente HTTP/2 es soportado por la mayoría de navegadores web.
Los clientes de Plesk pueden disponer de soporte de HTTP/2 a partir de la versión 12.5.30 Actualización #28. Tenga en cuenta que es imprescindible disponer de la versión más reciente de nginx.
Nota: HTTP/2 sólo se soporta para sitios SSL. Los sitios no SSL seguirán operando bajo HTTP/1.x.
Cómo activar el soporte de HTTP/2 para su sitio web
Compruebe que su servidor web nginx está debidamente actualizado y en ejecución. Puede comprobarlo en las páginas Herramientas y configuración -> Componentes del servidor y en Herramientas y configuración -> Administración de servicios.
Acceda a su servidor mediante SSH como root
y active el soporte de HTTP/2 en Plesk usando la siguiente utilidad de línea de comandos:
# plesk bin http2_pref enable
En el último paso, su servidor web nginx se configurará para usar el protocolo TLS con ciphers modernos y seguros, se recreará toda la configuración del servidor web y todos sus sitios web y los de sus clientes que tengas soporte para SSL se transferirán a HTTP/2.
Compruebe la salida del comando para ver si existe algún error o advertencia debido al cambio a HTTP/2. De existir algún problema, consulte la sección Resolución de problemas a continuación.
Nota: Para comprobar que HTTP/2 está activado en un dominio, simplemente use un servicio online como puede ser https://tools.keycdn.com/http2-test.
Si desea volver a HTTP 1.x y desactivar HTTP/2, ejecute el siguiente comando:
# plesk bin http2_pref disable
Soporte de ALPN
Para un correcto uso de HTTP/2 en Google Chrome, el servidor web nginx debe soportar ALPN (Application-Layer Protocol Negotiation). Si desea más información, consulte la documentación de ALPN.
En Plesk se soporta ALPN para servidores web nginx para los siguientes sistemas operativos: CentOS 7, RedHat Enterprise Linux 7 y Debian 8.
Esto significa que HTTP/2 con Plesk funciona en los sistemas operativos mencionados en todos los navegadores modernos.
Resolución de problemas
Si experimenta problemas al activar el soporte de HTTP/2 para un sitio web o bien el resultado de la verificación del sitio con https://tools.keycdn.com/http2-test muestra que únicamente se ha activado el protocolo HTTP 1.x, efectúe los pasos detallados a continuación.
-
Compruebe que el soporte de SSL ha sido activado para el sitio web yendo a la sección Configuración de hosting del dominio. HTTP/2 sólo se soporta para sitios SSL. Los sitios no SSL seguirán operando bajo HTTP /1.x. Esto es una restricción del servidor web nginx y de los navegadores web.
-
Compruebe que nginx ha sido activado:
# plesk sbin nginxmng -s
De ser necesario, actívelo:
# plesk sbin nginxmng -e
-
Compruebe que el paquete de OpenSSL corresponde a la versión 1.0.1 o a una versión posterior:
# rpm -qa | grep openssl openssl-1.0.1e-42.el6_7.4.x86_64.
-
Compruebe que en
/usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php
no existe ninguna plantilla de configuración personalizada. De existir, elimínela y vuelva a crear los archivos de configuración:# plesk sbin httpdmng --reconfigure-all
Como alternativa, si no desea eliminar sus personalizaciones, puede modificar el archivo
/usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php
tal y como se detalla a continuación.Busque una fila similar a la siguiente:
($OPT['default'] ? ' default_server' : '') . ($OPT['ssl'] ? ' ssl' : '') ?>;
Reemplácela por las dos siguientes filas:
($OPT['default'] ? ' default_server' : '') . ($OPT['ssl'] ? ' ssl' : '') . ($OPT['ssl'] && $VAR->domain->physicalHosting->proxySettings['nginxHttp2'] ? ' http2' : '') ?>;
A continuación, ejecute el siguiente comando:
# plesk bin http2_pref enable
-
En el caso de experimentar problemas de conexión SSL teniendo HTTP/2 activado, compruebe que la directiva
ssl_ciphers
en/etc/nginx/conf.d/ssl.conf
o en elnginxDomainVirtualHost.php
personalizado presenta el siguiente valor:ssl_ciphers EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20:EECDH+SHA256+AES128:EECDH+SHA384+AES256:EDH+SHA256+AES128:EDH+SHA256+AES256:EECDH+SHA1+AES128:EECDH+SHA1+AES256:EDH+SHA1+AES128:EDH+SHA1+AES256:EECDH+HIGH:EDH+HIGH:AESGCM+AES128:AESGCM+AES256:CHACHA20:SHA256+AES128:SHA256+AES256:SHA1+AES128:SHA1+AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!KRB5:!aECDH:!EDH+3DES;
-
Si su sitio no funciona en algunos navegadores tras activar HTTP/2, esto significa que no dispone de los ciphers ni de los protocolos necesarios para el soporte de HTTP/2. Para configurar los protocolos disponibles y la lista de los ciphers TLS tras haber activado HTTP/2, use la utilidad
sslmng
de Plesk. Por ejemplo, si desea usar exactamente la misma lista de ciphers que Plesk, el comando sería el siguiente:#plesk sbin sslmng --services=nginx --custom --ciphers="EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20" --protocols="TLSv1 TLSv1.1 TLSv1.2"
La configuración se almacenará en el archivo
/etc/nginx/conf.d/ssl.conf
. No le recomendamos editar este archivo de forma manual. -
Si estos pasos no le ayudan a resolver el problema, póngase en contacto con el equipo de soporte técnico de Plesk.