面接の質問: Nginx の負荷分散アルゴリズムはどのように実装されていますか?なぜ動きと静止を区別する必要があるのでしょうか?

面接の質問: Nginx の負荷分散アルゴリズムはどのように実装されていますか?なぜ動きと静止を区別する必要があるのでしょうか?

面接の質問

Nginx の負荷分散アルゴリズムはどのように実装されていますか? Nginx の負荷分散戦略は何ですか? Nginx で動的操作と静的操作を分離する必要があるのはなぜですか?

面接官の心理分析

主に、申請者が Nginx の基本原理に精通しているかどうかによって決まり、実際のビジネス シナリオに応じて適切な負荷分散 (転送) 戦略を選択できることが求められます。第二に、ウェブサイト構築において、Nginx の長所と短所を理解することで、その欠点を補い、ビジネスを *** アクセス ステータスに到達させる方法を見つけるのに役立ちます。

問題分析

1. Nginx の負荷分散アルゴリズムはどのように実装されていますか? どのような戦略がありますか?

負荷分散は、Nginx でよく使用される機能です。単位時間あたりのサーバーへのアクセス数が多いほど、サーバーにかかる負荷が大きくなります。負荷がサーバー自身の許容量を超えると、サーバーはクラッシュします。

サーバーのクラッシュを回避するために、負荷分散を通じて全員がサーバーの負荷を分散します。サーバーはクラスター化されています。ユーザーがサーバーにアクセスすると、まず転送サーバーにアクセスし、転送サーバーは負荷の少ないサーバーにアクセスを分散します。

Nginx の負荷分散を実装するための戦略は 5 つあります。

(1)ポーリング(デフォルト)

各リクエストは時系列順に異なるバックエンド サーバーに 1 つずつ割り当てられます。バックエンド サーバーがダウンした場合、障害のあるシステムを自動的に排除できます。

  1. アップストリームバックサーバー{
  2. サーバー 192.168.0.12;
  3. サーバー 192.168.0.13;
  4. }

(2)重量

重み値が大きいほどアクセスされる確率が高くなります。主にバックエンドサーバーごとのパフォーマンスにばらつきがある場合に使用されます。次に、ホスト リソースを合理的かつ効果的に使用するために、マスター/スレーブ状況で異なる重みが設定されます。

  1. アップストリームバックサーバー{
  2. サーバー 192.168.0.12重み= 2 ;
  3. サーバー 192.168.0.13重み= 8 ;
  4. }

重みが高ければ高いほど、訪問される可能性が高くなります。上記の例では、それぞれ 20% と 80% です。

(3)ip_hash(IPバインディング)

各リクエストはアクセス IP のハッシュ結果に従って割り当てられるため、同じ IP アドレスからの訪問者は固定のバックエンド サーバーにアクセスでき、動的 Web ページに存在するセッション共有の問題を効果的に解決できます。

  1. アップストリームバックサーバー{
  2. ip_ハッシュ;
  3. サーバー 192.168.0.12:88;
  4. サーバー 192.168.0.13:80;
  5. }

(4)公正(サードパーティのプラグイン)

upstream_fair モジュールをインストールする必要があります。

よりインテリジェントな負荷分散アルゴリズムである weight や ip_hash と比較すると、fair アルゴリズムはページ サイズと読み込み時間に応じて負荷をインテリジェントに分散し、応答時間が短いページを優先します。

  1. アップストリームバックサーバー{
  2. サーバー server1;
  3. サーバー server2;
  4. 公平;
  5. }

リクエストは、より速く応答するサーバーに割り当てられます。

(5) url_hash(サードパーティ製プラグイン)

Nginxハッシュパッケージをインストールする必要があります

アクセスされた URL のハッシュ結果に応じてリクエストを分散し、各 URL が同じバックエンド サーバーに送信されるように設定すると、バックエンド キャッシュ サーバーの効率がさらに向上します。

  1. アップストリームバックサーバー{
  2. サーバー squid1:3128;
  3. サーバー squid2:3128;
  4. $request_uri をハッシュします。
  5. ハッシュメソッドCRC32;
  6. }

2. 静的な動きと動的な動きを区別する必要があるのはなぜですか?

Nginx は現在最もホットな Web コンテナです。Web サイトの最適化のポイントは、Web サイトを静的にすることです。Web サイトの静的化のポイントは、動的と静的の分離です。動的と静的の分離とは、動的 Web サイト内の動的 Web ページが、一定のルールに従って、頻繁に変更されるリソースと変更されないリソースを区別できるようにすることです。動的リソースと静的リソースが分割された後、静的リソースの特性に応じてキャッシュします。

静的リソースは静的リソースサーバーにのみ送信し、動的リソースは動的サーバーにのみ送信する

Nginx は静的処理能力が強力ですが、動的処理能力が不十分です。そのため、企業では静的と動的の分離技術がよく使用されます。

  • 画像、js、css、その他のファイルなどの静的リソースについては、リバース プロキシ サーバー nginx にキャッシュします。このように、ブラウザが静的リソースを要求すると、プロキシ サーバー nginx は、バックエンド サーバー tomcat に要求を転送せずに、それを直接処理できます。
  • ユーザーがサーブレットや JSP などの動的ファイルを要求すると、そのファイルは処理のために Tomcat サーバーに転送され、動的ファイルと静的ファイルの分離が実現されます。これもリバース プロキシ サーバーの重要な機能です。

<<:  Qi Lu: 人工知能の時代では、チップと基盤となるソフトウェアは基本的に作り直す必要がある

>>:  機械学習におけるこれらの中核的な問題は、数学を知らなくても解決できます。

ブログ    
ブログ    

推薦する

seq2seq モデルよりも 90 倍高速です。 Google、新しいテキスト編集モデルFELIXを発表

[[397649]]シーケンスツーシーケンス (seq2seq) モデルは、自然言語生成タスクに対す...

スマートレコメンデーションの根底にあるロジックを理解するための4つのステップ

インテリジェント レコメンデーションは、ビジネス ニーズを満たすビッグ データと人工知能テクノロジに...

人工知能の分野は大きな需要があり、金融​​人材の将来性は有望である

[[408300]]重慶ビジネスデイリー・商油新聞記者が本について語る大学入試願書を記入中です。専攻...

...

暗号化アルゴリズムの将来と現状の簡単な分析

[[357912]]現在最も一般的に使用されている暗号化アルゴリズムは、一方向暗号化と双方向暗号化に...

...

GPUパフォーマンスを最大化

AI プロジェクトを高速化するためのデフォルトのアプローチは、GPU クラスターのサイズを増やすこと...

脳コンピューターインターフェースと仮想世界: 頭の後ろにチューブを挿入することは、必ずしもマトリックスのようになるわけではない

人間の脳にチップを埋め込み、脳とコンピューターの統合によってそれを制御するという話は、SFの世界から...

...

OpenAIの従業員が996の勤務スケジュールを公開、ネットユーザー「本当の競争は強制する必要はない」

OpenAI も 996 で動作することが確認されています (doge)。 『Thinking C...

IoTとAIが出会うとき: テクノロジーの未来

人工知能(AI)は驚異的な進歩を遂げ、一般に応用可能な技術として社会に影響を与えています。しかし、初...

機械プログラミングが次に投資すべきテクノロジーである理由は何ですか?

[[413321]] [51CTO.com クイック翻訳]一連の新しいツールは、機械学習やその他の...

...

...

「一歩ずつ考えよう」というマントラよりも効果的で、プロジェクトが改善されていることを示す

大規模言語モデル (LLM) は、適切なプロンプトがあれば、多くの自然言語処理タスクにとって強力なツ...