web-dev-qa-db-ja.com

AWS Application Load Balancerは、すべてのヘッダーを小文字に変換します

REST APIアプリケーションを2つのEC2インスタンスで実行し、AWS Classic LoadBalancerを長い間使用していました。REST APIのクライアントは応答ヘッダー(例:Locationなど)。

HTTPヘッダーは定義上大文字と小文字を区別しないことを知っていますが、(残念ながら)一部のクライアントはこれを無視し、大文字と小文字を区別する方法でヘッダーをチェックしています(たとえば、Locationが大文字で始まることを期待しています)。

最近、AWS Application Load Balancerに変更しましたが、すべての応答ヘッダーが小文字に変換されるため、クライアントが応答を適切に処理できないことがわかりました。

ここにいくつか質問があります。

  1. アプリケーションロードバランサーの予想される動作ですか?
  2. アプリケーションによって作成されたヘッダーを返すように構成する方法はありますか?
13
vtor

HTTP/2はすべてのヘッダーを小文字にする およびALB HTTP/2をサポート であるため、これはALBの期待される機能です。残念ながら、ALBによるヘッダーの操作方法を変更することはできません。

更新:以下のコメントを参照してください。 ALBはHTTP/2をサポートしているため、リクエストヘッダーを小文字にするという私の声明は正確ではない可能性があります。

11
jzonthemtn

これにより、TCP ELBからHTTPSELBに切り替えたときに、壊れたクライアントが失敗していました。

クライアントを修正している間、新しいELB HTTP/2サポートを一時的に無効にしました。これはデフォルトで有効になっています。

Disable HTTP/2 in the load balancer attributes