Accept cookies for analytics, social media, and advertising, or learn more and adjust your preferences. These cookies are on by default for visitors outside the UK and EEA. Privacy Notice.
ngx_http_rdns_module - 入ってくる接続に対してreverse DNS lookupを有効にし、入ってくるホスト名に対してallow/denyルールによって簡単なアクセス制御を提供します(HttpAccessModule allow/denyディレクティブに似ています; 正規表現がサポートされます)。モジュールは標準的なリゾルバディレクティブによって定義されるDNSサーバと共に動作します。
rdns
はif
ブロックの中で使うことができます);GitHubからモジュールを取得することができます。
注意
このモジュールはNGINXのソースと一緒に配布されません。 インストレーションの説明を見てください。
構文: | rdns [ on | off | double ] |
---|---|
デフォルト: | none |
コンテキスト: | http, server, location, if-in-server, if-in-location |
Phase: | rewrite |
rDNS lookupを有効/無効にします。
on : | このコンテキスト内でrDNS lookupを有効にします。 |
---|---|
off : | このコンテキスト内でrDNS lookupを無効にします。 |
double : | このコンテキスト内でdouble DNS lookupを有効にします。reverse lookup (rDNS リクエスト)が成功すると、モジュールはその結果に対してforward lookup (DNSリクエスト)を実施します。forward lookup が失敗するか、IPアドレスのforward lookupのいずれもが元のアドレスに一致しない場合、$rdns_hostname が not found に設定されます。 |
$rdns_hostname 変数は以下を持つかも知れません:
not found
;-
。lookupを実施した後で、モジュールは新しい $rdns_hostname 変数の値を他のディレクティブに見えるようにするために、リクエストの処理パイプラインを再起動します。
注意
内部的には、サーバあるいはlocationの if
の中でモジュールはrewriteモジュールのコードを使って動作します。最初になんらかのディレクティブ(on
あるいは double
) を有効にされた場合、それはDNS lookupを有効にし中断します(このif
内で更にディレクティブが実行されるのを防ぐため)。lookupが完了した後で、2回目のrewriteモジュールコードを使っているif
内のディレクティブが中止無しに実行されます。ディレクティブの無効化(off
) は中止しません。
このディレクティブを使用するためにコアモジュールのリゾルバが定義されていなければなりません。
構文: | rdns_allow regex |
---|---|
デフォルト: | none |
コンテキスト: | http, server, location |
Phase: | access |
正規表現を使って一致したドメインにアクセスを許可します。
構文: | rdns_deny regex |
---|---|
デフォルト: | none |
コンテキスト: | http, server, location |
Phase: | access |
正規表現を使って一致したドメインにアクセスを禁止します。
注意
rdns_allow
およびrdns_deny
ディレクティブは、使用されたコンテキストのための新しいアクセスリストを定義します。コンテキスト内のアクセスリストの継承は、子コンテキストが独自のルールを定義しない場合のみ動作します。
名前付きlocation内でのrDSNリクエストの生成はサポートされておらず、ループを引き起こすかも知れません。例えば:
server {
rdns on;
location / {
echo_exec @foo;
}
location @foo {
#...
}
}
名前付きのlocation内にあり、リクエスト処理パイプラインを再起動すると、NGINXはそのリクエストを通常の(名前無しの)location内で処理し続けようとします。名前付きのlocationの中でモジュールを無効にしない場合は、この例はループをするでしょう。この例の正しい設定は以下のようでなければなりません:
server {
rdns on;
location / {
echo_exec @foo;
}
location @foo {
rdns off;
#...
}
}
GitHubからソースコードを取得し、一般的な サードパーティモジュール の説明に従います。
このモジュールの元のバージョンは Dmitry Stolyarov, written by Timofey Kirillov, CJSC Flantによって設計されました。