AWSのALB→EC2でApacheが立っていて、それにcurlできない

curl: (92) HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1)

http2通信を行わせないようにする

<IfModule mod_http2.c>
    #Protocols h2 h2c http/1.1
    Protocols http/1.1
</IfModule>

設定後

yuta@DESKTOP-V36210S:/mnt/c$ curl -i https://dev2-terraform.test.jp/
HTTP/2 200
date: Mon, 08 Jun 2020 23:28:10 GMTcontent-type: text/html; charset=UTF-8
content-length: 2660

どうやらユーザーとALB間はhttp2通信で行われているが、ALBとEC2(Apache)の間はhttp1.1で行われているからみたい。
mod_http2を有効にしていると、「Upgrade」をレスポンスヘッダに加えてしまう。
だけど、http2通信のRFCでは許可されていないことのようで、はじかれてしまったみたい。
これはブラウザというかUserAgentの仕様によってきまるもので、今回はUbuntu(wsl)のcurlでできなかった。
Chromeからとかは見れたし、Invoke-WebRequestでもいけた。

参考サイト
https://qiita.com/t-kigi/items/0723cd7c26472746d389

<スポンサーリンク>

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)