thinking now...

旅とライブと祭と廃墟。

ELB経由でアクセスされたNginxでIP制限したいっ!

   

巷ではEUのIPからのアクセスを拒否するのが流行ってるみたいです(それで本当に解決したとは思えません)が、よくあるサンプルだとWeb1台な環境であれば、直接のアクセスなので普通に動くと思いますが、ELB等のロードバランサーを経由してWebサーバーに到達した時に

http {
  deny yyy.yyy.yyy.yyy;
}

って感じで拒否したいIPを書いても、denyの比較対象がロードバランサーのIP(ローカルIP)なので動きません。

解決策

http {
  real_ip_header X-Forwarded-For;
  set_real_ip_from xxx.xxx.xxx.xxx/xx;

  deny yyy.yyy.yyy.yyy;
}

拒否する前に、real_ipを本来アクセスしてきたIPに書き換え。
xxxの部分は、ELBのVPCアドレスです。

これで、ELBでもALBでも、LB使ってるサービスでも拒否しまくれますね(ぇ

 - Nginx