NGINX: 特定の場所を訪問した IP をテキスト ファイルにキャプチャ/記録する方法

NGINX: 特定の場所を訪問した IP をテキスト ファイルにキャプチャ/記録する方法

自分のサイト上の特定の場所への訪問者の IP を記録/キャプチャできるようにしたいと考えています。ホワイトリストまたはブラックリストに使用する 2 つの conf ファイルを用意することが目的です。

  • 悪質な人物は自動的にリスト化され、サーバーによってブロックされる可能性がある
  • 管理者は、管理領域にアクセスする前に秘密のアドレスにアクセスして、IP をホワイトリストに登録することができます。

問題は、nginx に conf ファイルに IP を書き込ませる方法が見つからないことです。

例:

location ~* ^/(trustme)/?$
    add "allow X.X.X.X;" to /etc/nginx/conf.d/trusted-ips.conf;
}

location ~* ^/(admin|wp-admin|control)/?$
    add "deny Y.Y.Y.Y;" to /etc/nginx/conf.d/blacklisted_ips.conf;
}

ありがとう

答え1

私の理解では、信頼できる IP を 1 つのファイルに追加して特定の場所で許可し、疑わしい IP を別のファイルに移動してそれらの IP に何らかの制限を設けることをお考えですか?

私の理解が正しければ、1ページ目のIPをawkで取得できます

awk '$7 ~ /^\/page1?/ {print $1}' /path/to/access.log | sort -u > result.txt

次に、同じコマンドを使用してページ2または管理者のIPをawkし、他の場所に保存します。

関連情報