Реализация обратного прокси с поддержкой HTTP/2 в Nginx
Привет, я бездарь.
Хотя мои недавние статьи, кажется, борются с поддержкой 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.
Поскольку соединение между 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
Получилось!!!
Сегодня у меня прощальная вечеринка, так что я смогу спокойно выпить алкоголя!
До скорого. Всего наилучшего.