GNU/Linux >> Linux の 問題 >  >> Ubuntu

HAProxy Load Balancer を Ubuntu 18.04 Bionic Beaver にインストールする方法

この記事では、Ubuntu 18.04 LTS に HAProxy Load Balancer をインストールして構成するために必要な手順について説明しました。このチュートリアルを続行する前に、sudo 権限を持つユーザーとしてログインしていることを確認してください。このチュートリアルのすべてのコマンドは、root 以外のユーザーとして実行する必要があります。

HAProxy はオープンソースの Linux ツールで、TCP および HTTP ベースのネットワーク アプリケーションに高可用性の負荷分散とプロキシ サービスを提供します。既存のアーキテクチャへの容易な統合、トラフィックの多い Web サイトへの適合性、極端な信頼性、および上位互換性への注力により、ほとんどの主流の Linux ディストリビューションでデフォルトで出荷されています。

Ubuntu に HAProxy をインストールする

ステップ 1. ネットワークの詳細

簡単にするために、インスタンスに次の IP アドレスとホスト名を想定します:

  • haproxy-server :パブリック IP アドレス 198.18.0.1
  • backend-server1 :プライベート IP アドレス 172.16.0.1 、パブリック IP アドレス 198.18.0.1
  • backend-server2 :プライベート IP アドレス 172.16.0.2 、パブリック IP アドレス 198.18.0.2

ステップ 2. まず、Ubuntu サーバーにパッケージをインストールする前に、すべてのシステム パッケージが更新されていることを確認することを常にお勧めします。

sudo apt update
sudo apt upgrade

ステップ 3. Ubuntu 18.04 LTS に HaProxy をインストールします。

HaProxy は Ubuntu ソフトウェア リポジトリで利用できるため、以下のコマンドを実行してパッケージ マネージャーを使用してインストールできます。

sudo add-apt-repository ppa:vbernat/haproxy-1.8
sudo apt-get update
sudo apt-get install haproxy

ステップ 4. HAProxy を使用した負荷分散の構成。

haproxy のデフォルト設定ファイル /etc/haproxy/haproxy.cfg を編集して、設定を開始します:

sudo nano /etc/haproxy/haproxy.cfg
global
	log /dev/log	local0
	log /dev/log	local1 notice
	chroot /var/lib/haproxy
	stats socket /run/haproxy/admin.sock mode 660 level admin
	stats timeout 30s
	user haproxy
	group haproxy
	daemon

	# Default SSL material locations
	ca-base /etc/ssl/certs
	crt-base /etc/ssl/private

	# Default ciphers to use on SSL-enabled listening sockets.
	# For more information, see ciphers(1SSL). This list is from:
	#  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
	ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256::RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
	ssl-default-bind-options no-sslv3

defaults
	log	global
	mode	http
	option	httplog
	option	dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
	errorfile 400 /etc/haproxy/errors/400.http
	errorfile 403 /etc/haproxy/errors/403.http
	errorfile 408 /etc/haproxy/errors/408.http
	errorfile 500 /etc/haproxy/errors/500.http
	errorfile 502 /etc/haproxy/errors/502.http
	errorfile 503 /etc/haproxy/errors/503.http
	errorfile 504 /etc/haproxy/errors/504.http

ファイルの末尾に向かって、以下の内容を追加してください:

frontend ourwebsitefrontend
    bind *:80
    mode http
    default_backend ourwebsiteendpoin

bind パラメータは、接続のためにポート 80 をリッスンするように HaProxy に指示します。テキストの最後で、エンドポイントが配置されているディレクティブとして ourwebsiteendpoint を指定しました。これで、次のようにバックエンド構成の詳細を追加できます:

backend ourwebsiteendpoint
    balance roundrobin
    option forwardfor
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    option httpchk HEAD / HTTP/1.1\r\nHost:localhost
    server backend-server1 172.16.0.1:8080 check
    server backend-server2 172.16.0.2:8080 check

必要に応じて、HAProxy 構成ファイルに次の構成を追加して、Haproxy 統計を有効にすることができます:

listen stats
    bind :32600
    stats enable
    stats uri /
    stats hide-version
    stats auth username:password

ステップ 5. 最終的な HAProxy 構成ファイル。

最終的な構成ファイルは次のようになります:

global
        log /dev/log    local0
        log /dev/log    local1 notice
        chroot /var/lib/haproxy
        stats socket /run/haproxy/admin.sock mode 660 level admin
        stats timeout 30s
        user haproxy
        group haproxy
        daemon

        # Default SSL material locations
        ca-base /etc/ssl/certs
        crt-base /etc/ssl/private

        # Default ciphers to use on SSL-enabled listening sockets.
        # For more information, see ciphers(1SSL). This list is from:
        #  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
        ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM$
        ssl-default-bind-options no-sslv3

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http

frontend ourwebsitefrontend
        bind *:80
        mode http
        default_backend ourwebsiteendpoint

backend ourwebsiteendpoint
    balance roundrobin
    option forwardfor
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto https if { ssl_fc }
    option httpchk HEAD / HTTP/1.1\r\nHost:localhost
    server backend-server1 172.16.0.1:8080 check
    server backend-server2 172.16.0.2:8080 check

listen stats
    bind :32600
    stats enable
    stats uri /
    stats hide-version
    stats auth username:password

次に、HaProxy サーバーを再起動して変更をリロードします。

sudo service haproxy restart

ステップ 6. 構成のテスト。

この段階で、完全に機能する HAProxy のセットアップが完了しました。各 Web サーバー ノードには、サーバーのホスト名を示すデモの index.html ページがあります。これにより、サーバーの Web ページを簡単に区別できます。

ここで、Web ブラウザーで IP 198.18.0.1 のポート 80 (上記で構成) にアクセスし、更新をクリックします。 HAProxy がリクエストをバックエンド サーバーに 1 つずつ送信していることがわかります (ラウンド ロビン アルゴリズムに従って)。

Ubuntu 18.04 に HAProxy Load をインストールするために必要なことはこれだけです。この簡単なヒントがお役に立てば幸いです。質問や提案がある場合は、下にコメントを残してください。


Ubuntu
  1. Ubuntu20.04にHAProxyロードバランサーをインストールして構成する方法

  2. GlassFish を Ubuntu 18.04 Bionic Beaver にインストールする方法

  3. Ubuntu 18.04 Bionic Beaver に Netbeans をインストールする方法

  1. Ubuntu 18.04BionicBeaverのインストール方法

  2. Ubuntu 18.04BionicBeaverにKodiをインストールする方法

  3. Ubuntu 18.04 Bionic Beaver に Slack をインストールする方法

  1. Ubuntu 18.04 Bionic Beaver に Pip をインストールする方法

  2. Ubuntu 18.04 Bionic Beaver に OpenVPN をインストールする方法

  3. Ubuntu 18.04 Bionic Beaver に Node.js をインストールする方法