Nginx は、リバース プロキシ サーバーとしても広く使用されている、高性能、オープンソース、多用途の Web サーバーです。リバース プロキシ サーバーを使用すると、負荷分散、高可用性、アクセス制御、トラフィック制御などの機能を提供できます。この記事では、Nginx リバースプロキシにおけるアクセス制御とフロー制御のアプリケーションを紹介します。
1. アクセス制御
Nginx は、IP アドレス ブラックリストまたはホワイトリストのアクセス制御を構成することでリクエストを実装できます。ブラックリスト内の IP アドレスはアクセスを拒否されますが、ホワイトリスト内の IP アドレスはアクセスを許可されます。たとえば、次のコードを Nginx 構成ファイルに追加できます。
# IP地址黑名单 location / { deny 192.168.1.1; deny 192.168.1.2; allow all; } # IP地址白名单 location / { deny all; allow 192.168.1.1; allow 192.168.1.2; }
Nginx は nginx-http-auth を渡すこともできます。 -digest module ユーザー認証に基づくアクセス制御を実装します。たとえば、次のコードを Nginx 設定ファイルに追加できます。
# 用户认证 location / { auth_digest "Enter username and password"; auth_digest_user_file /etc/nginx/user.passwd; }
その中で、/etc/nginx/user.passwd はユーザー名とパスワードを保存するファイルです。構成が完了したら、ユーザーはユーザー名とパスワードを入力して Nginx リバース プロキシ サーバーにアクセスする必要があります。
2. フロー制御
1. リクエスト レートの制限
Nginx は、ngx_http_limit_req_module モジュールを通じてリクエスト レートを制限できます。たとえば、次のコードを Nginx 設定ファイルに追加できます。
# 限制请求速率 http { limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; server { location / { limit_req zone=one burst=5; } } }
このうち、rate=1r/s は 1 秒あたり 1 つのリクエストのみが許可されることを意味し、burst=5 はバースト応答では 5 つのリクエストが許可されます。このリクエスト レートを制限する方法により、悪意のあるユーザーが大量のリクエストを送信してサーバー リソースを消費するのを防ぎます。
2. 接続速度を制限する
Nginx は、ngx_http_limit_conn_module モジュールを通じて接続速度を制限できます。たとえば、次のコードを Nginx 構成ファイルに追加できます:
# 限制连接速率 http { limit_conn_zone $binary_remote_addr zone=addr:10m; server { location / { limit_conn addr 10; } } }
その中で、limit_conn_zone は接続速度制限の共有ストレージ領域を定義するために使用され、limit_conn は最大接続数を制限するために使用されます。 IP アドレスごとに。接続速度を制限するこの方法は、悪意のあるユーザーが多数の接続を独占してサービスを拒否することを防ぎます。
概要
Nginx リバース プロキシ サーバーは、アクセス制御とトラフィック制御における強力なアプリケーション機能を備えており、IP アドレスのブラックリスト/ホワイトリスト、ユーザー認証、リクエスト レート制限と接続レート制限やその他の方法を渡すことができます。アクセス制御とリクエストのフロー制御を実装します。これらの方法により、サーバー リソースを効果的に保護し、サービスの可用性とセキュリティを向上させることができます。
以上がNginx リバースプロキシにおけるアクセス制御とフロー制御の適用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。