nginxの拡張モジュールを作成してgithubにて公開しました。
DOSのような攻撃的なアクセスを制御するようなモジュールで、指定時間に指定回数のアクセスを検知すると、任意の時間403を返却するようになります。
正確に言うと以前から公開していたものなのですが、改良を加えております。以前のものはprocess固有の領域にユーザのアクセス情報を格納していたのですが、これだとworker processが増えた際にそれぞれのプロセスで処理したアクセス履歴を共有できません。
むしろ通常はworker processは複数に設定することが多いと思いますので、これはすごく大きな問題です。
なので今回ユーザからのアクセス情報をosのshared memory segmentに格納するように改良を加えました。
データ構造の変更やデータ更新時の排他制御などを付け加えた形になります。
直にメモリを操作するとか、排他制御とか、あとは開発する上でデバッガを用いたりしているので、開発過程でosの知識が身についたりして非常に嬉しい限りです。
[…] 先日作成しましたnginxの拡張モジュールを更新しました。 (前回の更新はこちらになります) […]