AWS のロードバランサのうち,Network Load Blancer 配下(バックエンド)に LAMP 構成の Web サイトをおいた場合, 頻繁に 40秒ぐらいの読み込み待ちが発生する.
ブラウザは Chrome のときに限られており, Chrome の設定で
「予測サービスを使用してページをより迅速に読み込む」 (Chrome のバージョンによって文言が変わるようだ.)
を off にすることで解決する. (Firefox でも起こるとの情報アリ)
とはいえ,すべてのユーザにその設定をしてもらうのは,現実的でない.
Apache 側でパケットをキャプチャすると, Apache 側が ACK/SYN に対する ACK をもらっているにもかかわらず, クライアント側に ACK を送るよう再送要求をしている. どうも,ハーフオープン状態になっている感じ.
https://aws.amazon.com/jp/premiumsupport/knowledge-center/apache-backend-elb/ の AcceptFilter の欄に同様の現象が書かれている.
というわけで,Apache の設定に以下の行を加える.
AcceptFilter http none
参考 https://httpd.apache.org/docs/2.4/mod/core.html#acceptfilter