Debian 9.1(ストレッチ)へのHAProxy 1.7のインストール

HAProxyは、TCPおよびHTTPネットワークアプリケーションに高可用性、ロードバランシング、およびプロキシを提供するネットワークソフトウェアアプリケーションです。トラフィックの多いWebサイトに適しており、Web全体で人気のある多くのサイトを強化します。この記事では、Debian 9.1にHAProxyをインストールして構成する方法を示します。

HAProxyにはいくつかの優れた機能がありますが、この記事では、Webアプリケーションを「プロキシ」するようにHAProxyを設定する方法に焦点を当てています。

必要条件

  • 少なくとも2つのVultrサーバー(ロードバランシング機能用)と、その両方にデプロイされたWebサイトまたはWebアプリケーション。

HAProxyのインストール

Debian 9にはすでにHAProxy 1.7(執筆時点での最新の安定版リリース)が同梱されており、次を使用して簡単にインストールできますapt-get

# apt-get update
# apt-get install haproxy

前のコマンドが成功した場合は、HAProxyがインストールされているので、次のステップに進むことができます。

HAProxyの構成

HAProxy構成ファイルは、「グローバル」と「プロキシ」の2つのセクションに分かれています。1つはプロセス全体の構成を扱い、もう1つはデフォルト構成、フロントエンド、およびバックエンドセクションで構成されます。

グローバルセクション

お好みのテキストエディタを使用して/etc/haproxy/haproxy.cfg、定義済みセクション「グローバル」と「デフォルト」を開いて確認します。maxconnHAProxyが許可する接続に影響を与えるため、最初に行うことは、を適切なサイズに増やすことです。接続が多すぎると、多くのリクエストが原因でWebサービスがクラッシュする可能性があります。うまくいくか確認するには、サイズを調整する必要があります。グローバルセクションでは、のmaxconn値を選択しました3072

global
    daemon
    maxconn 3072

デフォルトのセクションで、モードの下に次の行を追加しますhttp

option forwardfor

これX-Forwarded-Forにより、各リクエストにヘッダーが追加され、バックエンドサーバーがユーザーの元のIPアドレスを学習できるようになります。

また、この行を追加して、クライアント側でHTTPキープアライブをサポートする機能を維持しながら、サーバー側でHTTP接続クローズモードを有効にします。これにより、クライアント側の待ち時間が短縮され、サーバーリソースの節約に役立ちます。

option http-server-close

クライアント側とサーバー側の両方でキープアライブを使用したい場合は、option http-keep-alive代わりに使用できます。このオプションは、サーバーへの新しい接続を確立するためのコストが、要求されたリソースを取得するためのコストと比較して大きい場合に特に役立ちます。

最後に、結果の構成ファイルは次のようになります。

defaults
    mode http
    option forwardfor
    option http-server-close
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms

プロキシセクション

プロキシを設定するには、構成ファイルに2つのセクションを追加して、プロキシの2つの部分(フロントエンドとバックエンド)を定義する必要があります。

フロントエンド構成

フロントエンドがHTTP接続を処理します。haproxy.cfgファイルの最後に次を追加します。

frontend http-frontend
    bind public_ip:80
    reqadd X-Forwarded-Proto:\ http
    default_backend wwwbackend

必ずpublic_ipサーバーのパブリックIPアドレスまたはドメイン名に置き換えてください。

バックエンド構成

構成ファイルの最後に次の行を追加して、バックエンドをセットアップします。

backend wwwbackend
    server 1-www server1_ip:80 check
    server 2-www server2_ip:80 check
    server 3-www server3_ip:80 check

ここで使用されるバックエンド構成は、という名前の3つの接続を作成しますX-www。(X1、2、または3です。)それぞれがserverX_ip:80 アドレスに対応します。(serverX_ipVultrインスタンスのIPアドレスに置き換えます。)これにより、指定したサーバーセット内の各サーバー間で負荷を分散できます(各IPアドレスが異なるサーバーに対応していると想定)。このcheckオプションにより、ロードバランサーはサーバーでヘルスチェックを実行します。

構成ファイルを保存してから、HAProxyを再起動します。

service haproxy restart

すべてが機能している場合は、接続してhttp://public_ip/(フロントエンドの手順で構成したパブリックIPまたはドメイン名に置き換えて)、Webサイトを表示できます。

エラーのデバッグ

変更後にHAProxyインスタンスが起動を拒否した場合、構成ファイルのどこかにエラーがある可能性があります。構成ファイルで問題に関する明確なメッセージを取得するには、次のコマンドを使用してHAProxyを手動で起動してみてください。

# haproxy -f /etc/haproxy/haproxy.cfg

たとえば、次のような出力が表示された場合:

[ALERT] 234/195612 (2561) : parsing [/etc/haproxy/haproxy.cfg:48] : server 1-www has neither service port nor check port nor tcp_check rule 'connect' with port information. Check has been disabled.
[ALERT] 234/195612 (2561) : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
[ALERT] 234/195612 (2561) : Fatal errors found in configuration.

次に、サーバーのポート番号を指定するのを忘れました1-www



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。