nginx: 許可/拒否ディレクティブ付きの geo モジュールを使用する

nginx: 許可/拒否ディレクティブ付きの geo モジュールを使用する

nginxのngx_http_アクセスモジュールのドキュメントで、次のような記述を見つけました:

ルールが多数ある場合は、ngx_http_geo_モジュールモジュール変数が望ましいです。

geo モジュールで allow/deny を使用するにはどうすればよいですか? 次のようにします:

geo $listofips {
    default 0;
    8.8.8.8 1;
}

server {
    # [...]
    allow $listofips;
    deny all;
}

次のエラーが発生します:

/path/to/config:97 のパラメータ「$listofips」が無効です

アクセス制御に geo モジュールを使用するにはどうすればよいでしょうか? ifs は明らかに機能しないため使用できませんtry_files(nginx の IfIsEvil を参照)。

答え1

IF を使用しないと、この回答が書かれた時点ではこれは不可能だと確信しています。

この場合は次のようになります。

geo $trusted_user {
    default 0;
    8.8.8.8 1;
}

server
{
    if ( $trusted_user = 0 ) {
        return 403;
    }
}

NGINX チームに提案を送信するには、次のアドレスにメールを送信してください: https://www.nginx.com/

この質問に対する回答は次の回答に基づいて得られました:NGINX - 条件付きで IP を許可または拒否する

ソースを検索「# try_files は if のため動作しません」「例」: https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/#examples

関連情報