NginxでIP直打ちアクセスを拒否する
一部ドメインのみ許可するか、IPでのアクセスを全て拒否するかどちらかにする
1. 指定したドメインのみ許可する
複数ドメインを紐付けている場合は全て書く。
server { listen 80; server_name example.com; # その他設定 } server { listen 80 default_server; server_name _; return 444; }
2. IPアドレスでのアクセスを正規表現で拒否する
ALBだとIPが変わるので、正規表現を使う。下記のserverディレクティブを追加する。
正規表現はもっと良い書き方あるかも
server { listen 80; server_name "~^(\d{1,3}\.){3}\d{1,3}$"; return 444; }
IPでのアクセスを制限すると、ロードバランサのヘルスチェックが通らなくなるので、そこはポートとかの設定を変えて対応する必要あり。