よくハマりそうなのでメモ。
準備
ELB内のnginxでリクエスト元のIPを$remote_addrにする
http {
set_real_ip_from 10.0.0.0/8;
real_ip_header X-Forwarded-For;
}
本番
http {
limit_req_zone $remote_addr zone=ddos:1m rate=10r/s;
server {
location / {
limit_req zone=ddos burst=50 nodelay;
}
}
}
間違い
http {
limit_req_zone $http_x_fowarded_for zone=ddos:1m rate=10r/s;
}
http://serverfault.com/questions/487463/nginx-rate-limiting-with-x-forwarded-for-header
$http_x_fowarded_forはlimit_reqに使ってはいけないとあった...