1. プロジェクト環境8台のcentos7/8サーバー、nginx 1.21.1、ab、nfs4、 2. プロジェクトの説明nginxをベースにした 4/7 層負荷分散 Web クラスター プロジェクトを構築する 企業のビジネス環境をシミュレートして、高同時実行性と高可用性を備えたWeb クラスターを構築します。 ストレス テストを使用して、クラスター全体のパフォーマンスをテストし、ボトルネックを特定し、継続的に最適化します。 3. プロジェクトの手順1. インストールAnsible サービスをインストールして展開し、他のサーバーとのパスワードなしのチャネルを確立し、nginx と zabbix をインストールして展開するためのプレイブックを作成します。 2. 構成Ansible 経由で nginx と zabbix をデプロイし、nginx の長時間接続、同時実行数、ワーカー プロセス数、速度制限、および zabbix の関連構成を構成し、Web サイトのコンテンツをアップロードします (WordPress ブログ システムや flask インターフェイス Web サイトの構築など)。 3. 負荷分散を実装する2台のサーバーをデュアルVIPロードバランサーとして使用し、nginxの4/7層ロードバランシング機能を使用し、重み付けラウンドロビンスケジューリングアルゴリズムを使用します。 4. サーバーを構築するウェブサイトのデータの一貫性を確保するためにNFSサーバーを構築し、バックエンドのリアルサーバー/バックエンドサーバーが起動時に自動的にマウントされるように設定します。 5. ストレステストABソフトウェアを使用してクライアントのストレステストを実行します 6. 監視ウェブクラスタ全体のパフォーマンスを監視するために、zabbix/prometheus監視プラットフォームに関連サーバーと監視項目を追加します--「zabbix 7. 高可用性keepalived ソフトウェアを使用して、ロードバランサーの可用性を高め、単一障害点を防止します--》keepalived 8. ドメイン名の解決Web クラスター全体のドメイン名解決を実行する DNS サーバーを構築します。DNS ドメイン名解決のロード バランシングにより、ユーザー アクセス用に 2 つの VIP を 1 つのドメイン名にバインドし、トラフィックを異なるロード バランサーにインポートします。 9. パフォーマンスを向上させるパフォーマンスを向上させるために、Web クラスター全体を最適化してください。カーネル パラメータ、nginx パラメータを最適化し、キャッシュの追加などの対策を検討してください。 10. Ansibleを使用してプレイブックを作成するAnsible を使用して、nginx、zabbix、keepalived、ab、nfs などのすべてのソフトウェアをインストールするためのプレイブックを作成してみてください。 IV. プロジェクト概要1. 1から複数まで、クラスターの概念を徐々に理解する 5. ウェブサイト構築に関する注意事項1. Web サイトのコンテンツを決定する必要があります: ブログ、インターフェイス Web サイト、テスト ページなど。データの一貫性の問題: NFS、SAN、クラウド ストレージ、NAS など。 2. カーネルパラメータの最適化: [root@docker ~]# sysctl -p ネット.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 カーネル.core_uses_pid = 1 ネット.ipv4.tcp_syncookies = 1 カーネル.msgmnb = 65536 カーネル.msgmax = 65536 net.ipv4.conf.all.promote_secondaries = 1 net.ipv4.conf.default.promote_secondaries = 1 net.ipv6.neigh.default.gc_thresh3 = 4096 net.ipv4.neigh.default.gc_thresh3 = 4096 カーネル.ソフトロックアップ_パニック = 1 net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.lo.disable_ipv6 = 0 カーネル.shmmax = 68719476736 カーネル.printk = 5 カーネル.sysrq = 1 カーネル.numa_balancing = 0 [root@docker ~]# ulimit 無制限 [root@docker ~]# ulimit -a コアファイルサイズ(ブロック、-c)無制限 データセグメントサイズ (キロバイト、-d) 無制限 スケジュール優先度 (-e) 0 ファイルサイズ(ブロック、-f)無制限 保留中のシグナル (-i) 14826 最大ロックメモリ (キロバイト、-l) 64 最大メモリサイズ (キロバイト、-m) 無制限 開いているファイル (-n) 100001 パイプサイズ (512 バイト、-p) 8 POSIX メッセージ キュー (バイト、-q) 819200 リアルタイム優先度 (-r) 0 スタックサイズ (kbytes, -s) 8192 CPU時間(秒、-t)無制限 最大ユーザープロセス数 (-u) 14826 仮想メモリ (キロバイト、-v) 無制限 ファイルロック (-x) 無制限 [ルート@docker ~]# ab -c 2000 -n 100000 http://192.168.0.92/ nginx ベースの Web クラスター プロジェクトの構築に関するこの記事はこれで終わりです。より関連性の高い nginx Web クラスター プロジェクトのコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: 時間別にグループ化された MySQL クエリ ステートメント
導入この記事は、 React + antdをベースにして、完全な全屏demoを紹介します。その理由は...
自動検出を行う際には、ポートなどの情報を取得してjson形式で返すスクリプトが必ず存在します。Red...
1. 前提条件何度かインストールしているので、エラーについてはこれ以上説明しません。ちょっとわかりに...
目次1. 問題の説明2. 問題分析3. 問題解決1. Dockerのディスク使用量を確認する2. 再...
1. 心の旅最近コックピットを書いていたときに、背景画像を単純に特定の角度に回転させるという問題につ...
キャンバスを使用して、参照用の影付きのグラフィックとテキストを作成します。具体的な内容は次のとおりで...
序文この記事では、山括弧のその他の用途をさらに詳しく見ていきます。前回の記事では、山括弧 (<...
マイクロソフトIIS (Internet Information Server) は、Microso...
目次ライフサイクルを理解する理由ライフサイクルとはライフサイクルフック関数作成され、マウントされたフ...
1. はじめに最近、CentOS での開発には多くの不便があることがわかりました。Windows/M...
目次ケース1:ケース2:ケース3:簡単にまとめると:過去 2 日間で、完全なテーブル スキャンを引き...
MySQL の追加、削除、変更、クエリステートメント1. 練習シートを作成するここでの練習表は3つの...
この記事の例では、WeChatアプレットの日付と時刻コンポーネントの具体的なコードを参考までに共有し...
前回の記事「202 個の無料高品質 XHTML テンプレート (1)」に続き、123WORDPRES...
1. SELECT句を使用して複数のテーブルをクエリするSELECT フィールド名 FROM tab...