Nginx を使用して高可用性 Web クラスターを実装する方法
Nginx を使用して高可用性 Web クラスターを実装する方法
はじめに:
最新のインターネット アプリケーションでは、高可用性は非常に重要な考慮事項です。高トラフィック下でアプリケーションの安定性と信頼性を確保するには、多くの場合、可用性の高い Web クラスターを構築する必要があります。中でも Nginx は非常に人気のあるリバース プロキシ サーバーであり、簡単な構成で負荷分散と高可用性を実現できます。この記事では、Nginx を使用して高可用性 Web クラスターを構築する方法とコード例を紹介します。
1. Nginx のインストールと構成
まず、各 Web サーバーに Nginx をインストールして構成する必要があります。
-
Nginx のインストール:
Ubuntu システムでは、次のコマンドを使用して Nginx をインストールできます:$ sudo apt-get update $ sudo apt-get install nginx
ログイン後にコピー Nginx の構成:
Nginx 構成ファイルnginx.conf
を開き、デフォルトのパスは/etc/nginx/nginx.conf
です。テキスト エディタを使用して編集します。
以下は簡単な構成例です:http { upstream backend { server backend1.example.com; server backend2.example.com; server backend3.example.com; } server { listen 80; location / { proxy_pass http://backend; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } }
ログイン後にコピーここで
upstream
ブロックは負荷分散バックエンド サーバーのセットを定義します;server
ブロックは、リスニング ポートとアクセス構成を定義します。
設定ファイルを保存して終了し、Nginx サービスを再起動して設定を有効にします:
$ sudo systemctl restart nginx
2. 負荷分散戦略を設定します
目的を達成するには負荷分散では、Nginx 構成ファイルで Nginx ファイルを構成できます。 さまざまな負荷分散戦略を定義します。以下に、一般的に使用される負荷分散戦略をいくつか示します。
ラウンドロビン戦略:
この戦略では、バックエンド サーバーの順序でリクエストが割り当てられます。upstream backend { server backend1.example.com; server backend2.example.com; server backend3.example.com; }
ログイン後にコピーIP ハッシュ (IP ハッシュ) 戦略:
この戦略は、サーバー上でクライアントの IP アドレスをハッシュすることによって、同じクライアントから同じバックエンドにリクエストを送信します。upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; server backend3.example.com; }
ログイン後にコピー加重ラウンドロビン戦略:
この戦略は、バックエンド サーバーの加重に基づいてリクエストを割り当てます。upstream backend { server backend1.example.com weight=3; server backend2.example.com weight=2; server backend3.example.com weight=1; }
ログイン後にコピー
3. ヘルス チェックとフォールト トレランスの構成
高可用性を実現するには、バックエンド サーバーでヘルス チェックを実行し、サーバーが利用できない場合はフォールト トレランスを実行する必要があります。 。
- ヘルス チェック:
nginx_http_healthcheck_module
またはnginx-stream-healthcheck-module
モジュールを通じて、バックエンド サーバーに Nginx のヘルス チェックを実装できます。 フォールト トレランス処理:
バックエンド サーバーが利用できない場合、Nginx はフォールト トレランスを実現するために、他の利用可能なサーバーにリクエストを送信できます。以下は、単純なフォールト トレラント構成の例です:http { upstream backend { server backend1.example.com; server backend2.example.com backup; server backend3.example.com; } server { listen 80; ... } }
ログイン後にコピー
上記の構成では、backup
パラメーターはバックアップ サーバーを指定します。プライマリ サーバーが使用できない場合、リクエストはバックアップ サーバーに転送されます。
4. コード例
次は、Nginx の負荷分散機能を示す簡単な Node.js ベースの Web サーバーの例です。
server.js:
const http = require('http'); const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello, World!'); }); server.listen(3000, 'localhost', () => { console.log('Server running at http://localhost:3000/'); });
ログイン後にコピー3 台のサーバーを起動:
$ node server.js $ node server.js $ node server.js
ログイン後にコピー- Nginx 設定ファイル (前の例)。
上記の構成を使用すると、ブラウザで http://localhost
にアクセスし、ページが更新されるたびにリクエストがさまざまなバックエンド サーバーに分散されることを確認できます。
結論:
この記事では、Nginx を使用して高可用性 Web クラスターを構築する方法を紹介し、インストール、構成、コード例を示します。ロード バランシング戦略、ヘルス チェック、およびフォールト トレランスを適切に構成することで、高トラフィック下での Web クラスターの安定性と信頼性を確保できます。この記事があなたのお役に立てば幸いです、読んでいただきありがとうございます!
以上がNginx を使用して高可用性 Web クラスターを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Tomcat サーバーが外部ネットワークにアクセスできるようにするには、以下を行う必要があります。 外部接続を許可するように Tomcat 構成ファイルを変更します。 Tomcat サーバー ポートへのアクセスを許可するファイアウォール ルールを追加します。 Tomcat サーバーのパブリック IP を指すドメイン名を指す DNS レコードを作成します。オプション: リバース プロキシを使用して、セキュリティとパフォーマンスを向上させます。オプション: セキュリティを強化するために HTTPS を設定します。

ThinkPHP フレームワークをローカルで実行する手順: ThinkPHP フレームワークをローカル ディレクトリにダウンロードして解凍します。 ThinkPHP ルート ディレクトリを指す仮想ホスト (オプション) を作成します。データベース接続パラメータを構成します。 Webサーバーを起動します。 ThinkPHP アプリケーションを初期化します。 ThinkPHP アプリケーションの URL にアクセスして実行します。

「nginx へようこそ!」エラーを解決するには、仮想ホスト構成を確認し、仮想ホストを有効にし、Nginx をリロードする必要があります。仮想ホスト構成ファイルが見つからない場合は、デフォルト ページを作成して Nginx をリロードすると、エラー メッセージが表示されます。が消え、ウェブサイトは通常のショーになります。

HTML ファイルを URL に変換するには Web サーバーが必要です。これには次の手順が含まれます。 Web サーバーを取得します。 Webサーバーをセットアップします。 HTMLファイルをアップロードします。ドメイン名を作成します。リクエストをルーティングします。

Node.js プロジェクトのサーバー デプロイメント手順: デプロイメント環境を準備します。サーバー アクセスの取得、Node.js のインストール、Git リポジトリのセットアップ。アプリケーションをビルドする: npm run build を使用して、デプロイ可能なコードと依存関係を生成します。コードをサーバーにアップロードします: Git またはファイル転送プロトコル経由。依存関係をインストールする: サーバーに SSH で接続し、npm install を使用してアプリケーションの依存関係をインストールします。アプリケーションを開始します。node Index.js などのコマンドを使用してアプリケーションを開始するか、pm2 などのプロセス マネージャーを使用します。リバース プロキシの構成 (オプション): Nginx や Apache などのリバース プロキシを使用して、トラフィックをアプリケーションにルーティングします。

Dockerfile で最も一般的に使用される命令は次のとおりです。 FROM: 新しいイメージを作成するか、新しいイメージを派生します。 RUN: コマンドを実行します (ソフトウェアのインストール、システムの構成) COPY: ローカル ファイルをイメージにコピーします。 ADD: COPY と同様に、自動的に解凍できます。 tar アーカイブまたは URL ファイルを取得します。 CMD: コンテナーの起動時にコマンドを指定します。 EXPOSE: コンテナーのリスニング ポートを宣言します (ただし、パブリックではありません) ENV: 環境変数を設定します。 VOLUME: ホスト ディレクトリまたは匿名ボリュームをマウントします。 WORKDIR: 作業ディレクトリをコンテナ ENTRYPOINT: コンテナ起動時に実行する内容を指定します。 実行可能ファイル (CMD に似ていますが、上書きできません)

はい、Node.js には外部からアクセスできます。次の方法を使用できます。 Cloud Functions を使用して関数をデプロイし、一般にアクセスできるようにします。 Express フレームワークを使用してルートを作成し、エンドポイントを定義します。 Nginx を使用して、Node.js アプリケーションへのリバース プロキシ リクエストを実行します。 Docker コンテナを使用して Node.js アプリケーションを実行し、ポート マッピングを通じて公開します。

PHP Web サイトを正常に展開して維持するには、次の手順を実行する必要があります。 Web サーバー (Apache や Nginx など) を選択する PHP をインストールする データベースを作成して PHP に接続する コードをサーバーにアップロードする ドメイン名と DNS を設定する Web サイトのメンテナンスを監視する手順には、PHP および Web サーバーの更新、Web サイトのバックアップ、エラー ログの監視、コンテンツの更新が含まれます。
