Подробная статья зедсь - https://www.nginx.com/blog/improving-nginx-performance-with-kernel-tls/
Подгружаем модуль ядра и проверяем загрузился ли он:
modprobe tls
lsmod|grep tls
Скачиваем openssl 3, nginx 1.21.4, компилим и устанавливаем:
wget https://www.openssl.org/source/openssl-3.0.0.tar.gz
tar xvvf openssl-3.0.0.tar.gz
wget http://nginx.org/download/nginx-1.21.4.tar.gz
tar xvvf nginx-1.21.4.tar.gz
cd nginx-1.21.4
./configure --with-openssl=../openssl-3.0.0 --with-openssl-opt=enable-ktls
make
make install
Обновляем конфигурацию nginx.conf:
# в секцию http добавляем директиву
sendfile on;
Обновляем конфигурацию виртуального хоста:
ssl_protocols TLSv1.3;
ssl_conf_command Options KTLS;
Перезапускаем nginx и проверяем отдачу статики. Файлы должны теперь отдаваться шустрее за счет того, что теперь nginx для шифрования обращается прямо в ядро. Это значит, что данные не копируются с kernel space в user space перед отдачей, а сразу отдается с kernel space.