AWSのALB→EC2でApacheが立っていて、それにcurlできない
1 |
curl: (92) HTTP/2 stream 1 was not closed cleanly: PROTOCOL_ERROR (err 1) |
http2通信を行わせないようにする
1 2 3 4 |
<IfModule mod_http2.c> #Protocols h2 h2c http/1.1 Protocols http/1.1 </IfModule> |
設定後
1 2 3 4 |
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