Доброе утро.
При использовании kTLS и sendfile наблюдается просадка производительности
при отдаче статических файлов, например при видео-стриминге. Одним из
вариантов решения является перенести статический файлы на другой хост и
использовать там только протоколы HTTP/1.1 и/или HTTP/3. Либо усложнять
логику работы в блоке location.
Не все сервисы позволяют выводить статику на отдельный хост, либо могут
иметь сложную конфигурацию nginx. Например web-сервис Peertube имеет
множество блоков location и использует различные условия if:
https://github.com/Chocobozzz/PeerTube/blob/develop/support/nginx/peertube
Обычному пользователю будет сложнее с этим разобраться и добавить
дополнительные блоки для исключения работы протокола HTTP/2 через kTLS.
Вполне легко можно запутаться и нарушить логику работы сайта.
Хотелось бы иметь более простой и универсальный способ отключения
обработки протокола HTTP/2 через kTLS.
Предполагаю, что перед передачей шифрования ядру системы сейчас nginx
проверяет наличие ssl и параметра sendfile. Можно ли добавить дополнительное
условие, которое проверяет дополнительный параметр, который указывает
какой протокол исключить из обработки шифрования ядром?
По итогу получится примерно такой вариант конфигурации:
server {
listen 0.0.0.0:443 quic reuseport ;
listen 0.0.0.0:443 ssl reuseport ;
http2 on;
http3 on;
ssl_conf_command Options KTLS;
disable_ktls_for_protocol http2;
...
Мне кажется, что такой вариант эффективнее, чем добавлять условие if с
rewrite и дополнительный блок location.
--
С уважением,
Izorkin mailto:izorkin@gmail.com
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru