2017-01-10 1 views

答えて

1

アプリケーションレート制限(yii2のような)がより柔軟です。例えば、ユーザーごとに異なる制限を書くことができます。または、将来の実行のためにキューにリクエストを入れてください。しかし、その制限を超えるリクエストは、依然としてPHPスクリプトに当たっていました。

Nginxの柔軟性は制限されていませんが、PHPスクリプトの前に要求を停止することができます。

通常、Nginxの制限はDOS保護として使用されます。通常の作業:たとえば、1つのIPからPHPプロセスを生成することを許可しないでください。

アプリケーションバックエンドオーバーロード保護として使用されるアプリケーションレート制限。それは、データベースまたは外部APIにすることができます。また、アプリケーション制限をビジネスロジックの一部として使用することもできます(関税率の異なるプランなど)

1

違いは、あなたのAPIサーバーの呼び出しのためのレート制限を設定するWebアプリケーションのどのような層です。

最初のケースYii2では、PHPコードで直接制限を設定します。で

yii\filters\RateLimitInterfaceあなたは、その後のYiiは自動的に応答に制限ヘッダを追加するためのyii\filters\RateLimiterを使用する、(API呼び出しのためのデータを管理するために使用されたモデル)をIdentityクラスのメソッドを実装します。

逆に、nginxでは、この制限をHttpサーバー構成で直接設定します。サーバーはヘッダーとの対話を担当し、要求を制限します。

本当の質問は、「yiiやnginxのアプローチはどうすればよいですか」です。答えは、あなたのapiサービスを構築する方法でミュートすることができます。

多くの人々は、この側面を世話するためにhttpサーバーを使用することが最も自然には方法だと言うことができますが、yii2では速度制限をカスタマイズするためにPHPを使用できます中/高レベルの複雑さを持つAPIサーバを開発することです。

非常にまれなケースでは、yii2とnginxを組み合わせて、さらにカスタムを得ることができます。

関連する問題