Nginx Spring remote ipaddress
サーバのフロントにNginx,リバースプロキシでspringのポートに飛ばしているとき,
spring側でアクセス元のipアドレスを取得しようとしたときに
getRemoteAddress()
などで取得しようとするが,
127.0.0.1
となってしまい,ローカルのアドレスになってしまう.
その場合には
アプリ側の設定
application.properties
server.tomcat.remote-ip-header=X-forwarded-For
server.tomcat.protocol-header-https-value=https
server.tomcat.protocol-header=X-Forwarded-Proto
server.tomcat.port-header=X-Forwarded-Port
サーバ側のNginxの設定
default.conf
server {
・・・・
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Remote-Addr $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-forwarded-For $proxy_add_x_forwarded_for;
}
でいけるかも