リバースプロキシとレートリミッタなどのnginxを使用する場合とyii2を使用する場合のレートリミットの違いは何ですか?yii2のレートリミットとnginxをレートリミットに使用
答えて
アプリケーションレート制限(yii2のような)がより柔軟です。例えば、ユーザーごとに異なる制限を書くことができます。または、将来の実行のためにキューにリクエストを入れてください。しかし、その制限を超えるリクエストは、依然としてPHPスクリプトに当たっていました。
Nginxの柔軟性は制限されていませんが、PHPスクリプトの前に要求を停止することができます。
通常、Nginxの制限はDOS保護として使用されます。通常の作業:たとえば、1つのIPからPHPプロセスを生成することを許可しないでください。
アプリケーションバックエンドオーバーロード保護として使用されるアプリケーションレート制限。それは、データベースまたは外部APIにすることができます。また、アプリケーション制限をビジネスロジックの一部として使用することもできます(関税率の異なるプランなど)
違いは、あなたのAPIサーバーの呼び出しのためのレート制限を設定するWebアプリケーションのどのような層です。
最初のケースYii2では、PHPコードで直接制限を設定します。で
yii\filters\RateLimitInterfaceあなたは、その後のYiiは自動的に応答に制限ヘッダを追加するためのyii\filters\RateLimiterを使用する、(API呼び出しのためのデータを管理するために使用されたモデル)をIdentityクラスのメソッドを実装します。
逆に、nginxでは、この制限をHttpサーバー構成で直接設定します。サーバーはヘッダーとの対話を担当し、要求を制限します。
本当の質問は、「yiiやnginxのアプローチはどうすればよいですか」です。答えは、あなたのapiサービスを構築する方法でミュートすることができます。
多くの人々は、この側面を世話するためにhttpサーバーを使用することが最も自然には方法だと言うことができますが、yii2では速度制限をカスタマイズするためにPHPを使用できます中/高レベルの複雑さを持つAPIサーバを開発することです。
非常にまれなケースでは、yii2とnginxを組み合わせて、さらにカスタムを得ることができます。
- 1. Nginxは:レートリミットは
- 2. レートリミットRESTfulコンシューマ
- 3. HerokuでレートリミットRESTリクエスト
- 4. Reporting APIから403レートリミット超過を受け取ります
- 5. は、私は現在、Podioと他のAPIとの統合に取り組んでいますレートリミット
- 6. yii2 + nginx、サブドメインからモジュール
- 7. リアルタイムアプリケーションyii2を使用
- 8. Yii2使用フォームタグ
- 9. dockerとプロキシとしてnginxを使用
- 10. 別のフォルダにあるNginx Yii2の設定
- 11. nginxのcertbot-autoを使用
- 12. マイクロサービスAPIゲートウェイとしてNginxを使用
- 13. Node.jsとNginxでワニスキャッシュツールを使用
- 14. リバースプロキシとNGINXを使用したNeo4j
- 15. yii2でmPDFを使用するには?
- 16. yii2 ActiveDataProviderに()参加の使用方法
- 17. kartik-v/yii2-exportを使用したyii2でのエクスポート
- 18. nginxを使用してWebルートとしてjenkinsワークスペースを使用
- 19. ビルドnginxの使用autoconfの
- 20. NGINXを使用したレスポンスクッキーにセキュアとhttpOnlyのフラグを追加
- 21. ドッキングウィンドウのnginxのは、私がドッキングウィンドウでnginxのを使用
- 22. RedisとMongoDB ActiveRecordsをYii2で一緒に使用
- 23. カスタムコンポーネントを使用したYii2ファイルのダウンロード
- 24. Yii2のLinkPagerでPjaxを使用する
- 25. yii2 /移行私はフレームワークをyii2使用しています
- 26. Yii2:私はYii2を使用しているクエリビルダ
- 27. WebSocket接続用のプロキシとしてnginxを使用
- 28. Yii2のブートストラップテンプレートなしのActiveFormの使用
- 29. pharを使用したYii2 Advanceアプリケーションのパッケージ化とデプロイ
- 30. yii2のsum()と関連するフィールドでグループを使用