Centos7はHAproxyを展開してNginxクラスターを実装します

序文#

Haproxyは、C言語で記述された無料のオープンコードソフトウェアであり、高可用性、[負荷分散](https://cloud.tencent.com/product/clb?from=10680)、およびTCPおよびHTTPベースのアプリケーションプロキシを提供し、ほとんどの主流のLinuxオペレーティングシステムで実行できます。
この実験では4つのサーバーを使用し、1つのサーバーにはスケジューリング用のhaproxyをインストールし、他の3つのサーバーはWebサービスを提供するためにnginxで構築し、1つのクライアントをテストアクセスに使用します。

環境紹介#

ホスト システム ipアドレス 機能
HAproxy Centos7 192.168.128.130 haproxy
node1 Centos7 192.168.128.131 Openresty
node2 Centos7 192.168.128.132 Openresty
node3 Centos7 192.168.128.133 Openresty
Client Windows10 192.168.3.2 chrome

nginxデプロイメント#

PS:nginx Webサーバーは3つあるので、ansibleを使用してインストールしました。

wget https://openresty.org/download/openresty-1.13.6.1.tar.gz
tar -zxvf openresty-1.13.6.1.tar.gz
cd openresty-1.13.6.1.tar
useradd -m www
yum -y install gcc gcc-c++ zlib-devel  pcre-devel openssl-devel
. /configure --prefix=/usr/local --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module 
gmake && gmake install
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx

nginxが正しくインストールされているかどうかをテストします

[ root@node1 html]# curl -I http://192.168.128.131
HTTP/1.1200 OK
Server: openresty/1.13.6.1
Date: Mon,18 Mar 201914:06:59 GMT
Content-Type: text/html
Content-Length:556
Last-Modified: Mon,18 Mar 201913:39:22 GMT
Connection: keep-alive
ETag:"5c8f9f8a-22c"
Accept-Ranges: bytes

[ root@node2 openresty-1.13.6.1]# curl -I http://192.168.128.132
HTTP/1.1200 OK
Server: openresty/1.13.6.1
Date: Mon,18 Mar 201914:07:28 GMT
Content-Type: text/html
Content-Length:556
Last-Modified: Mon,18 Mar 201913:38:49 GMT
Connection: keep-alive
ETag:"5c8f9f69-22c"
Accept-Ranges: bytes

[ root@node3 openresty-1.13.6.1]# curl -I http://192.168.128.133
HTTP/1.1200 OK
Server: openresty/1.13.6.1
Date: Mon,18 Mar 201914:07:32 GMT
Content-Type: text/html
Content-Length:556
Last-Modified: Mon,18 Mar 201913:39:08 GMT
Connection: keep-alive
ETag:"5c8f9f7c-22c"
Accept-Ranges: bytes

haproxyデプロイメント#

nginxの展開が成功した後、haproxyの展開を開始します。ここでは、インストールする1.8.19バージョンを選択します。

コンパイルしてインストール##

wget http://www.haproxy.org/download/1.8/src/haproxy-1.8.19.tar.gz
tar -zxvf haproxy-1.8.19.tar.gz
cd haproxy-1.8.19
make TARGET=linux310 ARCH=x86_64 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy
[ root@haproxy conf]# /usr/local/haproxy/sbin/haproxy -v
HA-Proxy version 1.8.192019/02/11
Copyright 2000-2019 Willy Tarreau <[email protected]>

構成##

新しいバージョンのhaproxyは、構成ファイルをexamplesディレクトリに保存しなくなったため、使用する古いバージョンの構成ファイルを採用しました。

構成ファイルを追加します###

global
 log 127.0.0.1 local0   #ログ
  maxconn 1000 #接続の最大数
  daemon
 
defaults
  log     global #グローバルに定義されたログを使用する
  mode    http #デフォルトモードモード{ tcp|http|health }、Tcpはレイヤー4、httpはレイヤー7、ヘルスはOKのみを返します
  option  httplog #ログの種類はhttplogです。
  option  dontlognull #ヘルスチェックのログ情報を記録しないでください
  retries 3   #接続に3回失敗した場合、サービスは利用できないと見なされます。以下で設定することもできます。
  timeout connect 5000   #接続タイムアウト
  timeout client  50000   #クライアント接続のタイムアウト
  timeout server 50000    #サーバー接続のタイムアウト
 
listen admin_stats
  bind 0.0.0.0:1080   #リスニングポート
  mode http   
  option httplog
  maxconn 10
  stats refresh 30s  #統計ページの更新時間
  stats uri /stats  #統計ページのURL
  stats realm XingCloud\ Haproxy   #統計ページのパスワードボックスのプロンプトテキスト
  stats auth admin:admin   #統計ページの検証情報
  stats auth  Frank:Frank  
  stats hide-version
  stats  admin if TRUE
listen webcluster 
  bind 0.0.0.0:80
  option httpchk GET /index.html
  balance roundrobin  #負荷分散モードのポーリング
  server inst1 192.168.128.131:80 check inter 2000 fall 3  #バックエンドサーバーを定義し、2000ミリ秒ごとにチェックします
  server inst2 192.168.128.132:80 check inter 2000 fall 3
  server inst3 192.168.128.133:80 check inter 2000 fall 3

ログの処理###

デフォルトでは、haproxyにはログがありません。ログを生成するにはrsyslogが必要です。システムにrsyslogがない場合は、yumを使用してインストールできます。

/etc/rsyslog.confの最後に次の2行を追加します。

# haproxy.log
local0.*/var/log/haproxy.log
local3.*/var/log/haproxy.log

/ etc / sysconfig / rsyslogファイルの構成を次の構成に変更します。

# SYSLOGD_OPTIONS=""
SYSLOGD_OPTIONS="-r -m 0"

rsyslogを再起動します

systemctl restart rsyslog

テスト#

上記の設定が完了したら、haproxyのポートとプロセスが正常かどうかを確認します

ポートとプロセスが正常な状態にあることを確認して、負荷分散が正常に機能するかどうかをテストしてみましょう。

Recommended Posts

Centos7はHAproxyを展開してNginxクラスターを実装します
CentOS7.3.1611はk8s1.5.2クラスターを展開します
Centos7はKubernetesクラスターを展開します
CentOS7はk8sクラスターを展開します
CentOS8にNginxをインストールする方法
CentOS8はKMSサービスを展開してOfficeをアクティブ化します
(1)クラスター環境を構築するためのCentos7のインストール
Centos7.3はnginxをインストールします
CentOSでNginxサーバーをすばやく構築する方法
CentOS7に基づいて自動的に起動するようにNginxを構成します
Centos7はNginxをインストールします
ランチャーを使用して、CentOS7でK8sクラスターを構築します
CentOSはNginxを使用してダウンロード機能サーバーを構築します
Let&#39;sEncryptを使用してCentOS8でNginxを保護する方法
Centos 6.4 python2.6を2.7にアップグレード
Centos6.9ビルドrabbitmq3.6.8クラスター
Centos 6.4 python2.6を2.7にアップグレード
CentOS6インストールcouchdb2クラスター
CentOS7はRabbitMQサービスを展開します
Centos7ビルドKubernetesクラスター
CentOS6.5はカーネルを3.10.28にアップグレードします
Centos7mqttクラスターのインストール
CentOS7はNFSサービスを展開します
CentOSクラスター関連の問題
CentOS5からCentOS5.8YUMソース
まず、Centos7でCephストレージクラスターを構築してみてください
CentOS7のインストールとエントリからマスターまでのnginxのメンテナンス
centos7でk8sクラスターをインストールおよび構成するための詳細な手順