NginxでHTTP2対応のリバースプロキシを行う
2 min read
こんにちは、無能です。
最近の記事が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
でコネクションされているのでこのヘッダー情報が含まれておりHTTPS
標準であるHTTP/2
通信でcurl
すると怒られてしまうという。
というわけでこれを消してしまえば行けるのでは?と思いやってみたら行けました。
ざっくり言うと、HTTP通信時のヘッダー情報含む形で配信してしまっていたのでHTTP2
に合わせた形にしてあげればうまくいくよね?そんな感じです。
日本語情報だと、NICさんの記事が一番わかり易いと思います。
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
いけました〜〜〜!!!
今日は自分の送別会があるので、心置きなくアルコール摂取できそうです!
それではまた。よろしくお願いします。