私は最近 CDN 関連のビジネスを始めました。たとえば、すべての Web サイトのキャッシュは、さまざまな転送、プロキシ、キャッシュ、負荷分散などの機能がすべてサポートされています。 nginxによる。
多くのアクセス制御戦略は、nginx に組み込まれた lua を使用して実装する必要があります。また、nginx 上でカスタマイズおよび開発する必要がある CDN に関連する大量のロジックとビジネスがあるため、nginx をマスターすることが基礎となります。 -CDN事業の深化。
そこで、nginx をより深く理解できるように、学習とビジネス開発を同時に行い、全体的な学習体験を記録する予定です。
現在、nginx の理解は次の側面に限定されています:
- 1 nginx は、ロシアの専門家によってオープンソース化されたイベント駆動型モデル C/S アーキテクチャに基づく高性能 WEB サーバーであり、主に電子メールに関連する HTTP プロトコルをサポートします。
- 2 nginx は WEB サーバーの中で最高のパフォーマンスを持っていますが、市場シェアでは 2 位にすぎませんが、Java の世界ではもちろん 1 位は Apache です。
- 3 現在、国内の主流の CDN サービスのバックエンドは、ほぼすべて nginx に基づいています。
- 4 nginx は非常に強力で、フォワード プロキシ、リバース プロキシ、キャッシュ、ロード バランシング、その他多くの機能をサポートしています。
- 5 nginx は lua 拡張機能を非常によくサポートし、内部で lua インタープリターをロードして、lua 言語との完璧な適合を実現できます。現在、多くの機能は Lua スクリプトで完結しています。
- 6 nginx は、マスターマネージャーとゼロから複数のワーカープロセスを備えたマルチプロセス管理方式を採用しており、特定のビジネスはすべて特定のワーカーによって完了されます。マスターは管理とスケジュールの責任のみを負います。
- 7 nginx は、パイプラインを使用してメッセージ フローを処理します。処理プロセスは 11 段階に分かれており、各段階で条件が満たされない場合は早期に終了します。 。最も有名な 3 つの段階は、書き換え、アクセス、コンテンツです。リライトはURLのチェックや属性の変更、リダイレクトなどの内部処理を行うこと、アクセスは主にアクセス制御の実装などを行うこと、コンテンツはユーザーに送信する最終的なコンテンツを生成することです。
- 8 nginx 内には、文字列、リンクされたリスト、ハッシュ、radix_tree (前に使用した) などを含む多くのデータ構造があります。これらのデータ構造をマスターすることが最善です。
- 9 openresty というオープンソース プロジェクトがあり、これには nginx のコアと一般的に使用されるサードパーティ モジュールが含まれています。すぐにビルドしたい場合はそれを参照できます。
以上、nginx の学習 (1) をさまざまな側面を含めて紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。