テスト用に、クライアントのリモート IP アドレスを検査する単純なコントローラーを用意しました。
defmodule AppWeb.PageController do
use AppWeb, :controller
def index(conn, _params) do
IO.inspect conn.remote_ip
render conn, "index.html"
end
end
を使用して本番環境でテストしているphx.server
ときconn.remote_ip
に、予想されるクライアント IP アドレスが含まれています。この形式は次のとおりです。
{0, 0, 0, 0}
Distillery でパッケージ化されたバイナリを実行すると、conn.remote_ip
代わりに次のようなものが返されます。異なる IP アドレスを持つ複数のリモート クライアントに対しても、毎回同じものが返されます。
{0, 0, 0, 0, 0, 12345, 12345, 12345}
私のアプリケーションはリバース プロキシの背後に置かれていません。