Nginx Web サーバーは負荷分散を実現できますが、1 つの Nginx にも制限があり、ボリュームが大きくない場合、その上位層で負荷分散を実現する方法。 DNSやCDNの場合、複数のコンピュータ室を構築すると必然的に複数のコンピュータ室でのデータ同期の問題が発生します。これに関して良い情報はありますか?
回答:
この領域の情報は基本的に部分的に不完全です。おそらく基本的なアーキテクチャについて説明します: (推奨される学習: nginx チュートリアル )
DNS サーバー。十分な資金がある場合は、BGP コンピューター ルームを使用することをお勧めします。 2-3 DNS サーバー イコライゼーションには、通常バインド ソフトウェアが使用されます。資金が厳しい場合は、国内の dnspod などの専門的な DNS サービスを購入することもできます。
CDN サーバーは、最初の手間を省きたい場合は chinacache などの専門会社のサービスを購入することもできますが、開発が進むにつれてコストはどんどん高くなっていきます。自分で構築する場合は、個別に構築し、チャイナテレコム、チャイナユニコム、チャイナモバイルなどの異なるコンピュータ室にサーバーを置き、DNSを通じて動的解決を実行することもできます。非常に大規模な Web サイトの場合は Squid を使用し、通常の中規模から大規模な Web サイトの場合は Nginx を使用し、内部使用の場合は Varnish を使用します。
フロントエンドはバランスが取れており、十分な資金があれば、数十万台のハードウェア機器を使用できます。すでに技術チームがいる場合は、Nginx/Haproxy Keepalived を使用して独自のフロントエンドを構築できます。バランス方法は、ランダム、重み、IP、URL など、比較的柔軟です。
同期の問題は何を同期するかによって異なりますが、通常はリアルタイムのファイル同期が可能です。ただし、データベースの場合、同期方法は特定のタイプによって異なります。
バックエンド アプリケーション サーバーとデータベース クラスターは、トラフィック プランニングに依存します。
複数の Nginx ユニット間のバランスを実現するには、いくつかの方法があります:
1. 各 Nginx ユニットにはパブリック ネットワーク アドレスがあり、同じドメイン名への複数の方向はドメイン名に設定します。これは、Lun Xun を実装する最も簡単な方法です。ただし、障害の遮断は遅くなります。
2. 1 つのパブリック ネットワーク Nginx は、アップストリーム機能、ホイール、IP、URL を通じてイントラネット上の複数の nginx に配布されます。しかし、パブリックネットワーク上のnginxがダウンすると、内部ネットワークは完全に切断されてしまいます。
3. パブリック ネットワーク Nginx のペアと 3 つのパブリック ネットワーク IP により、キープアライブを通じて高可用性が実現され、その後イントラネットへのアップストリームが実現されます。
4. ハードウェア バランシング サーバーがフロントエンドにあり、コンテンツはハードウェアを介して他のサーバーにバランスされます。
あなたが言及した仮説は、方法 2、3、および 4 を通じて実現できます。
以上が複数の nginx クラスターの仕組みの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。