Python FlaskがNginxをエージェントとして使用する場合の実際のIPの取得方法

588 ワード

まず、Nginxの構成です.転送されたリクエストheadersにリアルIPを設定する必要があります.
location /path { 
  proxy_pass http://127.0.0.1:5000/; 
  proxy_set_header X-Real-IP $remote_addr; 
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
}

次にFlaskでheadersでIPを取得します.
ip = request.headers.get('X-Real-IP')

ユーザがエージェントを使用する場合,取得したIPがエージェント後のIPである場合,上位IPを取得する必要がある.X-Forwarded-ForによってIPのリンク(結果は配列)を取得し、IPはカンマで区切られます.
ip = request.headers.get('X-Forwarded-For')

参考自:Python FlaskがNginxをエージェントとして使用する場合の実際のIPの取得方法