Добрый вечер, Максим. Теперь ясно, благодарю :)
Вы писали 6 января 2024 г., 21:27:52: > Просадка производительности, которую вы наблюдаете для HTTP/2 при > включённом kTLS - не собственно из-за kTLS, а из-за того, что у > вас включён sendfile, и при включённом kTLS становится возможным > его использование. А в случае HTTP/2 это выливается в большое > количество syscall'ов из-за HTTP/2-фрейминга. > Если очень хочется получить включённый sendfile и kTLS в случае > HTTP/1.x, и выключенный в случае HTTP/2, то можно сделать как-то > так (слегка адаптировано из > https://mailman.nginx.org/pipermail/nginx-devel/2022-September/NSHDCLL2TY3Q536CO5MAKXSC3HCIMUNF.html): > server { > listen 443 ssl; > http2 on; > location / { > if ($server_protocol != 'HTTP/2.0') { > rewrite ^(.*) /sendfile$1 last; > } > sendfile off; > } > location /sendfile/ { > alias html/; > sendfile on; > } > } Да, были предположения после тестов, что для статики лучше делать отдельный домен и активировать на нём HTTP/1.1 и kTLS. Но такой вариант сработает только с теми web-сервисами, которые позволяют выводить статику в отдельный домен. К примеру, есть сервис Peertube для видео-хостинга. У него сложная конфигурация nginx, и такой вариант конфигурации применить сложно, спокойно можно что-то упустить, особенно пользователю, который глубоко не разбирается в Nginx. Видеоплатформа позволяет выводить статику в отдельные домен, но только с использованием S3 хранилища. Получается, что для Peertube, лучшим вариантом будет отключить протокол HTTP/2, активировать кTLS и использовать только протоколы HTTP/1.1 и HTTP/3. > Но смысла в этом не очень много, так как при включённом HTTP/2 > рассчитывать на клиентов, которые придут по HTTP/1.x, не имеет > особого смысла, таких клиентов будет исчезающе мало. Если хочется > получить высокую производительность при скачивании больших файлов, > и при этом использовать HTTP/2 (и/или HTTP/3), то имеет смысл > заводить отдельный виртуальный сервер, в котором разрешать только > HTTP/1.x (а также sendfile и kTLS), и раздавать файлы с него. > Для HTTP/3 не работают ни kTLS, ни sendfile, соответственно > влияния на производительность HTTP/3 от включения kTLS не будет. -- С уважением, Izorkin mailto:izor...@gmail.com _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org https://mailman.nginx.org/mailman/listinfo/nginx-ru