HAProxy High Availability Proxyの略で、着信トラフィック( TCP )のバランスをとることができる無料のオープンソースロードバランサーツールです。 およびHTTPベース )異なる基準を使用してバックエンドサーバー全体に分散することによって。
つまり、HAProxyは、1つのノードが同時に要求を取得しすぎた場合に、フォールトトレランスと高可用性を提供するために使用されていると言えます。 GitHub、Stack Overflow、Tumblerなどの最も有名なWebサイトで使用されています。
この記事では、NginxWebサーバー用のCentOS8 /RHEL8にHAProxyをインストールして構成する方法について説明します。以下は、私のhaproxyラボのセットアップの詳細です。
- HAProxyサーバー– 192.168.1.10(haproxy-centos8)
- Nginxサーバー1– 192.168.1.11(nginx-node01)
- Nginxサーバー2– 192.168.1.12(nginx-node01)
CentOS 8 /RHEL8でのHAProxyのインストールと構成の手順に進みましょう
ステップ:1)HAProxyサーバーの/ etc/hostsファイルを更新します
haproxyをインストールするCentOS8またはRHEL8システムにログインし、/ etc/hostsファイルに次の行を追加します。
192.168.1.10 haproxy-centos8 192.168.1.11 nginx-node01 192.168.1.12 nginx-node02
ホストファイルを更新したら、Nginxノードにpingできることを確認してください。
手順:2)CentOS 8 /RHEL8にHAProxyをインストールして構成する
Haproxyパッケージは、CentOS8およびRHEL8のデフォルトのパッケージリポジトリで利用できるため、dnfコマンドを使用して簡単にインストールできます。ただし、haproxyをインストールする前にシステムを更新することをお勧めします。したがって、次のコマンドを実行します。
[email protected] ~]# dnf update -y [email protected] ~]# reboot
次に、次のdnfコマンドを使用してhaproxyをインストールします
[[email protected] ~]# dnf install haproxy
haproxyが正常にインストールされたら、構成ファイル「 /etc/haproxy/haproxy.cfg」を編集して構成します。 「。
ファイルを編集する前に、元のファイルのバックアップを作成し、次のコマンドを実行することをお勧めします。
[[email protected] ~]# cd /etc/haproxy/ [[email protected] haproxy]# cp haproxy.cfg haproxy.cfg-org [[email protected] haproxy]#
構成ファイルで、2つのセクションフロントエンドを変更します およびバックエンド 。フロントエンドセクションでは、haproxy IPとそのポート、統計URI、およびバックエンド名を定義します。バックエンドセクションでは、ラウンドロビンや最小接続など、使用する負荷分散アルゴリズムのタイプと、バックエンドサーバーの名前、IP、ポートを定義します。例を以下に示します。
[[email protected] haproxy]# vi haproxy.cfg ………………… frontend http_balancer bind 192.168.1.10:80 option http-server-close option forwardfor stats uri /haproxy?stats # acl url_static path_beg -i /static /images /javascript /stylesheets # acl url_static path_end -i .jpg .gif .png .css .js # use_backend static if url_static default_backend nginx_webservers backend nginx_webservers mode http balance roundrobin option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost server nginx-node01 192.168.1.11:80 check server nginx-node02 192.168.1.12:80 check ………………………………
ファイルを保存して終了します
すべてのHAProxy統計を保存するようにrsyslogを構成し、rsyslog構成ファイル「/etc/rsyslog.conf」を編集します。 」と19行目と20行目のコメントを外します
[[email protected] ~]# vi /etc/rsyslog.conf …… module(load="imudp") input(type="imudp" port="514") ……
ファイルを保存して終了します。
次に、rsyslogのhaproxy.confファイルを作成し、次の行を貼り付けます。
[[email protected] ~]# vi /etc/rsyslog.d/haproxy.conf local2.=info /var/log/haproxy-access.log local2.notice /var/log/haproxy-info.log>
ファイルを保存して終了します
rsyslogサービスを再起動して有効にし、再起動後も利用できるようにします
[[email protected] ~]# systemctl restart rsyslog [[email protected] ~]# systemctl enable rsyslog
最後にhaproxyを開始しますが、haproxyサービスを開始する前に、次のselinuxルールを設定します。
[[email protected] ~]# setsebool -P haproxy_connect_any 1
以下のsystemctlコマンドを使用してhaproxyを起動して有効にします
[[email protected] ~]# systemctl start haproxy [[email protected] ~]# systemctl enable haproxy
OSファイアウォールでhaproxyポート(この場合は80)を許可し、underfire-cmdコマンドを実行します。
[[email protected] ~]# firewall-cmd --permanent --add-port=80/tcp [[email protected] ~]# firewall-cmd --reload
これでHAProxyのインストールと構成の部分が完了するまで、Nginxノードに移動しましょう。
手順:3)NGINXをインストールしてサービスを開始します
両方のnginxノードにログインし、nginxをインストールして、次のコマンドを使用してサービスを開始します。
# dnf install nginx -y # systemctl start nginx # systemctl enable nginx
それぞれのノードのindex.htmlファイルを変更してみましょう
nginx-node01の場合
[[email protected] ~]# cd /usr/share/nginx/html [[email protected] html]# echo "Nginx Node01 - Welcome to First Nginx Web Server" > index.html
nginx-node02の場合
[[email protected] ~]# cd /usr/share/nginx/html [[email protected] html]# echo "Nginx Node02 - Welcome to 2nd Nginx Web Server" > index.html
以下のコマンドを使用して、両方のノードのOSファイアウォールでNginxポート(80)を許可します
# firewall-cmd --permanent --add-service=http # firewall-cmd --reload
ステップ:4)HAProxyが正しく機能しているかどうかをテストします
haproxyサーバーにログインし、curlコマンドを数回実行して、トラフィックがラウンドロビン方式で分散されているかどうかを確認します
[[email protected] ~]# curl 192.168.1.10
完璧です。これにより、haproxyが2つのノード間でトラフィックを分散しているため、正しく機能していることが確認されます。
Webブラウザからも確認しましょう
上記は、HAProxyがCentOS8およびRHEL8で正常に構成されたことを確認します。
Webブラウザでhaproxyのステータスを表示するには、次のように入力します。url:http://
この場合、URLはhttp://192.168.1.10/haproxy?stats
になります。
ログファイル( /var/log/haproxy-access.log )からHAProxy統計を表示することもできます 。
このチュートリアルは以上です。これらの手順が、CentOS8およびRHEL8でHAProxyをスムーズにセットアップするのに役立つことを願っています。貴重なフィードバックやコメントをぜひ共有してください。
また読む :CentOS8でDjangoPythonFrameworkをセットアップする方法