<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">сб, 6 янв. 2024 г. в 20:48, <<a href="mailto:izorkin@gmail.com">izorkin@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Добрый вечер, Максим.<br>
<br>
Теперь ясно, благодарю :)<br>
<br>
Вы писали 6 января 2024 г., 21:27:52:<br>
<br>
> Просадка производительности, которую вы наблюдаете для HTTP/2 при <br>
> включённом kTLS - не собственно из-за kTLS, а из-за того, что у <br>
> вас включён sendfile, и при включённом kTLS становится возможным <br>
> его использование. А в случае HTTP/2 это выливается в большое <br>
> количество syscall'ов из-за HTTP/2-фрейминга.<br>
<br>
> Если очень хочется получить включённый sendfile и kTLS в случае <br>
> HTTP/1.x, и выключенный в случае HTTP/2, то можно сделать как-то <br>
> так (слегка адаптировано из <br>
> <a href="https://mailman.nginx.org/pipermail/nginx-devel/2022-September/NSHDCLL2TY3Q536CO5MAKXSC3HCIMUNF.html" rel="noreferrer" target="_blank">https://mailman.nginx.org/pipermail/nginx-devel/2022-September/NSHDCLL2TY3Q536CO5MAKXSC3HCIMUNF.html</a>):<br>
<br>
> server {<br>
> listen 443 ssl;<br>
<br>
> http2 on;<br>
<br>
> location / {<br>
> if ($server_protocol != 'HTTP/2.0') {<br>
> rewrite ^(.*) /sendfile$1 last;<br>
> }<br>
<br>
> sendfile off;<br>
> }<br>
<br>
> location /sendfile/ {<br>
> alias html/;<br>
> sendfile on;<br>
> }<br>
> }<br>
<br>
Да, были предположения после тестов, что для статики лучше делать<br>
отдельный домен и активировать на нём HTTP/1.1 и kTLS. Но такой<br>
вариант сработает только с теми web-сервисами, которые позволяют<br>
выводить статику в отдельный домен.<br>
К примеру, есть сервис Peertube для видео-хостинга. У него сложная<br></blockquote><div><br></div><div>складывается ощущение, что перескакивание с "а вот есть еще PeerTube", заставляет как-то пытаться связать</div><div>новый вопрос с предыдущим тредом, и связь неочевидна.</div><div><br></div><div>выскажу осторожное предположение, что может стоит лимитировать один вопрос на тред<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
конфигурация nginx, и такой вариант конфигурации применить сложно,<br>
спокойно можно что-то упустить, особенно пользователю, который<br>
глубоко не разбирается в Nginx. Видеоплатформа позволяет выводить<br>
статику в отдельные домен, но только с использованием S3 хранилища.<br>
Получается, что для Peertube, лучшим вариантом будет отключить<br>
протокол HTTP/2, активировать кTLS и использовать только протоколы<br>
HTTP/1.1 и HTTP/3.<br>
<br>
> Но смысла в этом не очень много, так как при включённом HTTP/2 <br>
> рассчитывать на клиентов, которые придут по HTTP/1.x, не имеет <br>
> особого смысла, таких клиентов будет исчезающе мало. Если хочется <br>
> получить высокую производительность при скачивании больших файлов, <br>
> и при этом использовать HTTP/2 (и/или HTTP/3), то имеет смысл <br>
> заводить отдельный виртуальный сервер, в котором разрешать только <br>
> HTTP/1.x (а также sendfile и kTLS), и раздавать файлы с него.<br>
<br>
> Для HTTP/3 не работают ни kTLS, ни sendfile, соответственно <br>
> влияния на производительность HTTP/3 от включения kTLS не будет.<br>
<br>
<br>
-- <br>
С уважением,<br>
Izorkin mailto:<a href="mailto:izorkin@gmail.com" target="_blank">izorkin@gmail.com</a><br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="https://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">https://mailman.nginx.org/mailman/listinfo/nginx-ru</a><br>
</blockquote></div></div>