Простой способ массового переноса http2 из listen в отдельную директиву
Maxim Dounin
mdounin на mdounin.ru
Чт Дек 28 13:54:43 UTC 2023
Hello!
On Thu, Dec 28, 2023 at 11:21:55AM +0300, Evgeniy Berdnikov wrote:
> On Thu, Dec 28, 2023 at 10:07:41AM +0200, Иван wrote:
> > nginx: [warn] the "listen ... http2" directive is deprecated, use the
> > "http2" directive instead in /etc/nginx/sites-enabled/...:152
> >
> >
> > Надо http2 из параметра директивы listen перенести в отдельную
> >
> > http2 on;
> >
> >
> > У меня несколько десятков блоков server. В некоторых http2 нужен, в
> > некоторых (listen 80) нет. Есть какие-нибудь идеи как конвертацию сделать
> > массово?
>
> Это конкурс на лучший однострочник в кружке юного программиста?
>
> perl -i~ -pe 'if(m/listen\s+/ && s/\s+http2//) {print "http2 on;\n"}' *.conf
Предостерегу от подобных решений: в общем случае это не даст
идентичный конфиг, так как из чего-то вроде:
server { listen 443 ssl http2; server_name foo; ... }
server { listen 443; server_name bar; ... }
где HTTP/2 работает в обоих блоках server, получится конфигурация
вида:
server { listen 443 ssl; http2 on; server_name foo; ... }
server { listen 443; server_name bar; ... }
где во втором блоке server HTTP/2 выключен.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru