ホームページ  >  記事  >  運用・保守  >  Nginx で Tcp ロード バランシングを構成する方法

Nginx で Tcp ロード バランシングを構成する方法

WBOY
WBOY転載
2023-05-20 13:16:202695ブラウズ

この記事では、負荷分散のためのプロキシ サーバーとして Nginx を使用します。これは単なる単純な応用例であり、原則は含まれません。

Nginx で Tcp ロード バランシングを構成する方法

(ここでのホストは制限されています。42.192.22.128 ホストの 8000 ポートはプロキシ サーバーのリスニング ポートとして使用され、8181 はサービスのリスニング ポートです)
クライアントは次の手順でプロキシサーバーにアクセスします。プロキシサーバーはリクエストを対応するサーバーに振り分けます。
Nginx 構成ファイルを変更して Tcp ロード バランシングを構成します (Nginx インストール後の構成ファイルは /usr/local/nginx/conf/nginx.config にあり、Nginx 実行可能プログラムは ## にあります) #/usr /local/nginx/sbin ディレクトリ) 次のフィールドを
nginx.conf 構成ファイルに追加します:

Nginx で Tcp ロード バランシングを構成する方法

stream {
    upstream Server {
        server 42.192.22.128:8181 weight=1 max_fails=3 fail_timeout=30s;
        server 1.13.180.100:8181 weight=1 max_fails=3 fail_timeout=30s;
    }
    server {
        listen 8000;
        proxy_pass Server;
    }
}

ここで重要なことは、2 つの構成ブロック

upstreamserver が関係することです。
upstream の 2 つのホストを定義し、weight は重みを表します。ホストは両方とも 1 であり、プロキシ サーバーがクライアント要求を上流サーバーに均等に分散することを示します。max_failsfail_timeout と組み合わせて使用​​されます。これは、## 内にあることを意味します。 #fail_timeout 期間 (if) 現在のアップストリーム サーバーが 3 回を超えて転送に失敗した場合、アップストリーム サーバーは現在の fail_timeout 期間中は利用できないと見なされます。 fail_timeoutこの期間内に転送が何回失敗すると、上流サーバーが一時的に利用できなくなったとみなされるかを示します。 server
はプロキシ サーバーのリスニング ポート番号 8000 を指定し、proxy_passupstream ブロック Server # の名前を指定します。 ##。 設定が完了したら、nginx -s reload を使用して、実行中の Nginx が設定項目を再読み込みして有効にします。
アップストリーム サーバーは、「スイス アーミー ナイフ」 nc コマンドを使用して TCP サーバーをシミュレートし、対応するポートでリッスンします: (ここでの IP アドレスはクラウド ホストのイントラネット IP です)

単純な Qt アプレットを使用してクライアントをシミュレートします。 Nginx で Tcp ロード バランシングを構成する方法

void Widget::on_btnConnection_clicked()
{
    m_pTcpSocket->connectToHost(ui->lineeditIp->text(), ui->lineeditPort->text().toUShort());
    qDebug() << m_pTcpSocket->state();
}

void Widget::on_btnSend_clicked()
{
    qDebug() << m_pTcpSocket->state();
    QByteArray byteArray;
    byteArray.append(ui->texteditMsg->toPlainText());
    const char *pChatMsg = byteArray.data();
    qDebug() << m_pTcpSocket->write(pChatMsg, byteArray.size());
}

2 つのクライアントを連続して起動し、TCP 経由で

42.192.22.128:8000

に接続します。そしてメッセージを送信すると、メッセージが 2 つのホストに分散されていることがわかります。これは、クライアントのリクエストが実際に異なるサーバーに分散されていることを示しています。

以上がNginx で Tcp ロード バランシングを構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。