nginx ウェブサイトの設定に次の指示を追加します:
server {
# リバースプロキシ
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Forwarded $proxy_add_forwarded;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
}
}
nginx 設定を変更した後は nginx -s reload
を忘れずに実行してください。
ASP.NET Core プログラムに次のミドルウェアを追加します:
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
設定が完了したら、元の方法でクライアントの IP を取得できるようになります。ミドルウェアが適応問題を処理します。