4 février 2022

Amélioration des performances de NGINX avec le noyau TLS et SSL_sendfile ()

Déplacez l'implémentation cryptographique de l'espace utilisateur vers l'espace noyau.

TLS du noyau NGINX

Transport Layer Security (TLS) est un protocole de cryptage extrêmement populaire. L'implémentation de TLS dans le noyau (kTLS) améliore les performances en réduisant considérablement le besoin d'opérations de copie entre l'espace utilisateur et le noyau.

La combinaison de kTLS et sendfile()cela signifie que les données sont chiffrées directement dans l'espace du noyau, avant d'être transmises à la pile réseau pour transmission. Cela élimine le besoin de copier les données dans l'espace utilisateur pour qu'elles soient chiffrées par les bibliothèques TLS, puis de les renvoyer dans l'espace du noyau pour la transmission. kTLS permet également de décharger le traitement TLS sur le matériel, y compris déchargement du traitement cryptographique symétrique TLS vers les périphériques réseau .

Les noyaux Linux et FreeBSD modernes prennent en charge le déchargement TLS dans le noyau, et maintenant NGINX Open Source le fait aussi ! NGINX 1.21.4 introduit la prise en charge de kTLS lors de la diffusion de fichiers statiques avec SSL_sendfile(), ce qui peut grandement améliorer les performances. Comme décrit ci-dessous, le noyau et OpenSSL doivent être compilés avec kTLS pour que NGINX puisse être utilisé SSL_sendfile().

Dans ce blog, nous détaillons quel système d'exploitation et quelles versions d'OpenSSL prennent en charge kTLS et montrons comment créer et configurer le noyau et NGINX pour kTLS. Pour vous donner une idée de l'amélioration des performances que vous pouvez attendre de kTLS, nous partageons également les spécifications et les résultats de nos tests sur FreeBSD et Ubuntu.

Note: Les implémentations de kTLS sont assez récentes et évoluent rapidement. Ce blog décrit la prise en charge de kTLS à partir de novembre 2021, mais gardez un œil sur les annonces sur nginx.org et le Blog NGINX sur les modifications apportées aux informations et instructions fournies ici.

Conditions générales

  • Système d'exploitation - L'un des suivants :
    • FreeBSD 13.0+. Depuis novembre 2021, FreeBSD 13.0+ est le seul système d'exploitation prenant en charge kTLS dans NGINX sans compilation manuelle de NGINX pour intégrer OpenSSL 3.0.0+. Consultez la section « Activer NGINX avec kTLS sur FreeBSD ».
    • Une distribution Linux basée sur la version 4.17 ou ultérieure du noyau Linux, bien que nous vous recommandons d'utiliser celles basées sur la version 5.2 ou ultérieure dans la mesure du possible. (La prise en charge de KTLS est actuellement disponible dans la version 4.13, mais OpenSSL 3.0.0 nécessite la version 4.17 ou ultérieure de l'en-tête du noyau.)
  • OpenSSL - Version 3.0.0 ou ultérieure
  • NGINX - Version 1.21.4 ou ultérieure

Amélioration des performances avec kTLS

Lors de la diffusion de fichiers statiques dans des conditions de charge élevée, SSL_sendfile()Est-il possible augmenter le débit à 2 fois l'espace utilisateur TLS, mais la taille de l'augmentation des performances dépend de manière significative de divers facteurs (performances du disque, charge du système, etc.). Vous pouvez également réduire l'utilisation du processeur si votre carte réseau prend en charge le déchargement TLS.

Riepilogo

NGINX 1.21.4 introduit la prise en charge de kTLS lors de la diffusion de fichiers statiques avec SSL_sendfile(). Nos tests montrent que les performances s'améliorent entre 8% et 29%, selon le système d'exploitation.

 

Vous avez des doutes ? Vous ne savez pas par où commencer ? Contactez-nous !

Nous avons toutes les réponses à vos questions pour vous aider à faire le bon choix.

Discute avec nous

Discutez directement avec notre support avant-vente.

0256569681

Contactez-nous par téléphone pendant les heures de bureau 9h30 - 19h30

Contactez-nous en ligne

Ouvrez une demande directement dans l'espace contact.

AVIS DE NON-RESPONSABILITÉ, Mentions légales et droits d'auteur. Red Hat, Inc. détient les droits sur Red Hat®, RHEL®, RedHat Linux® et CentOS® ; AlmaLinux™ est une marque commerciale de la AlmaLinux OS Foundation ; Rocky Linux® est une marque déposée de la Rocky Linux Foundation ; SUSE® est une marque déposée de SUSE LLC ; Canonical Ltd. détient les droits sur Ubuntu® ; Software in the Public Interest, Inc. détient les droits sur Debian® ; Linus Torvalds détient les droits sur Linux® ; FreeBSD® est une marque déposée de la Fondation FreeBSD ; NetBSD® est une marque déposée de la Fondation NetBSD ; OpenBSD® est une marque déposée de Theo de Raadt ; Oracle Corporation détient les droits sur Oracle®, MySQL®, MyRocks®, VirtualBox® et ZFS® ; Percona® est une marque déposée de Percona LLC ; MariaDB® est une marque déposée de MariaDB Corporation Ab ; PostgreSQL® est une marque déposée de PostgreSQL Global Development Group ; SQLite® est une marque déposée de Hipp, Wyrick & Company, Inc. ; KeyDB® est une marque déposée d'EQ Alpha Technology Ltd. ; Typesense® est une marque déposée de Typesense Inc. ; REDIS® est une marque déposée de Redis Labs Ltd ; F5 Networks, Inc. détient les droits sur NGINX® et NGINX Plus® ; Varnish® est une marque déposée de Varnish Software AB ; HAProxy® est une marque déposée de HAProxy Technologies LLC ; Traefik® est une marque déposée de Traefik Labs ; Envoy® est une marque déposée de CNCF ; Adobe Inc. détient les droits sur Magento® ; PrestaShop® est une marque déposée de PrestaShop SA ; OpenCart® est une marque déposée d'OpenCart Limited ; Automattic Inc. détient les droits sur WordPress®, WooCommerce® et JetPack® ; Open Source Matters, Inc. détient les droits sur Joomla® ; Dries Buytaert détient les droits sur Drupal® ; Shopify® est une marque déposée de Shopify Inc. ; BigCommerce® est une marque déposée de BigCommerce Pty. Ltd.; TYPO3® est une marque déposée de la TYPO3 Association; Ghost® est une marque déposée de la Ghost Foundation; Amazon Web Services, Inc. détient les droits sur AWS® et Amazon SES® ; Google LLC détient les droits sur Google Cloud™, Chrome™ et Google Kubernetes Engine™ ; Alibaba Cloud® est une marque déposée d'Alibaba Group Holding Limited ; DigitalOcean® est une marque déposée de DigitalOcean, LLC ; Linode® est une marque déposée de Linode, LLC ; Vultr® est une marque déposée de The Constant Company, LLC ; Akamai® est une marque déposée d'Akamai Technologies, Inc. ; Fastly® est une marque déposée de Fastly, Inc. ; Let's Encrypt® est une marque déposée d'Internet Security Research Group ; Microsoft Corporation détient les droits sur Microsoft®, Azure®, Windows®, Office® et Internet Explorer® ; Mozilla Foundation détient les droits sur Firefox® ; Apache® est une marque déposée de The Apache Software Foundation ; Apache Tomcat® est une marque déposée de The Apache Software Foundation ; PHP® est une marque déposée de PHP Group ; Docker® est une marque déposée de Docker, Inc. Kubernetes® est une marque déposée de The Linux Foundation ; OpenShift® est une marque déposée de Red Hat, Inc. ; Podman® est une marque déposée de Red Hat, Inc. ; Proxmox® est une marque déposée de Proxmox Server Solutions GmbH ; VMware® est une marque déposée de Broadcom Inc. ; CloudFlare® est une marque déposée de Cloudflare, Inc. ; NETSCOUT® est une marque déposée de NETSCOUT Systems Inc. ; ElasticSearch®, LogStash® et Kibana® sont des marques déposées d'Elastic NV ; Grafana® est une marque déposée de Grafana Labs ; Prometheus® est une marque déposée de The Linux Foundation ; Zabbix® est une marque déposée de Zabbix LLC ; Datadog® est une marque déposée de Datadog, Inc. ; Ceph® est une marque déposée de Red Hat, Inc. ; MinIO® est une marque déposée de MinIO, Inc. ; Mailgun® est une marque déposée de Mailgun Technologies, Inc. ; SendGrid® est une marque déposée de Twilio Inc. Postmark® est une marque déposée d'ActiveCampaign, LLC ; cPanel®, LLC détient les droits sur cPanel® ; Plesk® est une marque déposée de Plesk International GmbH ; Hetzner® est une marque déposée de Hetzner Online GmbH ; OVHcloud® est une marque déposée d'OVH Groupe SAS ; Terraform® est une marque déposée de HashiCorp, Inc. ; Ansible® est une marque déposée de Red Hat, Inc. ; cURL® est une marque déposée de Daniel Stenberg ; Facebook®, Inc. détient les droits sur Facebook®, Messenger® et Instagram®. Ce site n'est pas affilié, sponsorisé ou autrement associé à l'une des entités mentionnées ci-dessus et ne représente aucune de ces entités de quelque manière que ce soit. Tous les droits sur les marques et noms de produits mentionnés sont la propriété de leurs titulaires respectifs des droits d'auteur. Toutes les autres marques mentionnées sont la propriété de leurs titulaires respectifs.

JUSTE UN MOMENT !

Vous êtes-vous déjà demandé si votre hébergement était nul ?

Découvrez dès maintenant si votre hébergeur vous pénalise avec un site web lent digne des années 1990 ! Résultats immédiats.

Fermer le CTA
Retour en haut de page