envoyでrequest headerを変更する


概要

envoyを経由してhttpリクエストを、APPサーバーに送るときのヘッダー情報を追加/変更をしてみる

やったこと

route_config.request_headers_to_add を利用する。headerkey value を指定する。
appendについては、オプションだがデフォルトだと値の追加になり、下記の例で、append: true だと
httpの値が来た場合に http,https のような変な値になってしまったので append: false を指定している。

request_headers_to_add:
 - header: { key: "X-Forwarded-Port", value: "443" }
   append: false
 - header: { key: "X-Forwarded-Proto", value: "https" }
   append: false

リクエスト情報をヘッダーの値として格納したい

formated-stringsを利用する。 コレ
"%REQ(X-FORWARDED-FOR)%" のような感じでリクエストのメタ情報を値として使うことができる
例えば…

  • %REQ(:METHOD)%
  • %REQ(USER-AGENT)%
  • %REQ(X-REQUEST-ID)

などなど
ちなみに先頭に : がつく、つかないの規則はよくわからない

request_headers_to_add:
 - header: { key: "X-Forwarded-Port", value: "%REQ(X-REAL-FORWARDED-PORT)%" }
   append: false
 - header: { key: "X-Forwarded-Proto", value: "%REQ(X-REAL-FORWARDED-PROTO)%" }
   append: false

参考情報