環境
nginxのサーバーが2台あったとして
ユーザー - インターネット - [nginx1] - [nginx2] - [rails]
みたいな構成になっていたとき、nginx1ではなくnginx2側(バックエンド)で特定のIPのみ許可して、他のIPを弾きたい。
設定
例えば8.8.8.8からのアクセスのみ許可したい場合は
set $allow "ng"; if ($http_x_forwarded_for ~ " ?8\.8\.8\.8$" ) { set $allow "ok"; } if ($allow = "ng") { return 403; }
をnginxのserverブロック内に追加すればおk $allow
の変数名もok
ng
の文字列は任意で(