Phoenixをnginxなどのプロキシのバックエンドとして構成した場合、Phoenixサーバーは正常動作しているにも関わらず HTTP 400エラーを返すことがあります。
これはWebサーバーのCowboyの仕様によるもので、 HTTP Hostヘッダーが空の場合には400を返すとのことです。また、スペースなどの空白文字がHostにセットされていた場合は、404が返るようです。
nginx側の設定で、 proxy_set_header が適切に機能することが確認のポイントです。
mix phx.serverのログに出ない場合があるため、問題の所在が分かりにくいケースといえます。
⁋ 2019/07/01↻ 2024/12/18
中馬崇尋
Chuma Takahiro
Chuma Takahiro