Реализация обратного прокси с поддержкой HTTP/2 в Nginx

3 min

language: ja bn en es hi pt ru zh-cn zh-tw

Привет, я бездарь.
Хотя мои недавние статьи, кажется, борются с поддержкой HTTP/2...

$ curl https://soulminingrig.com/
curl: (92) Invalid HTTP header field was received: frame type: 1, stream: 1, name: [upgrade], value: [h2,h2c]

И вот...

Что такое HTTP/2 - JPNIC

Обновление может использоваться только в случае http.

Поскольку соединение между Nginx и Apache осуществляется по HTTP1.1, эта информация заголовка включается, и при использовании curl для связи по HTTP/2, который является стандартом HTTPS, возникает ошибка.
Итак, я подумал, что если удалить это, то все получится? Попробовал, и получилось.

Грубо говоря, поскольку информация заголовка передавалась в том виде, в котором она используется при HTTP-связи, если привести ее в соответствие с HTTP2, все должно работать, верно? Вот так.
Что касается информации на японском языке, я думаю, что статья NIC-san самая понятная.

Настройка Nginx

Похоже, достаточно установить это в директиве location и исключить заголовок Upgrade.
Возможно, это и не нужно, но я сделал это явно, так как это HTTP-связь.

    proxy_hide_header Upgrade;
    proxy_http_version 1.1;

Время для curl!

Если теперь выполнить curl -I...

$ curl -I https://soulminingrig.com/
HTTP/2 200 
server: nginx/1.27.0
date: Thu, 21 Nov 2024 22:44:47 GMT
content-type: text/html
content-length: 15375
vary: Accept-Encoding
last-modified: Thu, 21 Nov 2024 03:45:14 GMT
etag: "3c0f-627641819d3e9"
accept-ranges: bytes
vary: Accept-Encoding
content-security-policy: upgrade-insecure-requests
alt-svc: h3=":443"; ma=86400
x-content-type-options: nosniff

Получилось!!!
Сегодня у меня прощальная вечеринка, так что я смогу спокойно выпить алкоголя!
До скорого. Всего наилучшего.

Related Posts