私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
1: 事例の概要
2: 事前の知識
3: ケース環境
[root@localhost ~]# yum -y インストール pcre-devel zlib-devel gcc*
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
[root@localhost ~]# tar zxvf nginx-1.12.0.tar.gz
[root@localhost ~]# cd nginx-1.12.0/
[root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
[root@localhost nginx-1.12.0]# make && make install
[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@localhost nginx-1.12.0]# cd /usr/local/nginx/html/0
[root@localhost html]# echo "test web01" > test.html
[root@localhost ~]# systemctl stop ファイアウォールd
[root@localhost ~]# nginx -t
[root@localhost ~]# nginx ##nginx プロセスを開始します
[root@localhost ~]# netstat -anpt | grep nginx
[root@localhost ~]# systemctl stop ファイアウォールd
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum -y インストール pcre-devel bzip2-devel gcc*
[root@localhost ~]# tar zxvf haproxy-1.5.19.tar.gz
[root@localhost ~]# cd haproxy-1.5.19/
[root@localhost haproxy-1.5.19]# TARGET=linux26 にする
[root@localhost haproxy-1.5.19]# インストールする
注記:
Linux 2.2 用の linux22
Linux 2.4 以降の場合は linux24 (デフォルト)
動作する epoll (> 0.21) をサポートする Linux 2.4 用の linux24e
Linux 2.6 以降の場合は linux26
solaris は Solaris 8 または 10 用 (その他は未テスト)
freebsd は FreeBSD 5 から 8.0 まで (その他は未テスト)
OpenBSD 3.1 から 4.6 用の openbsd (その他は未テスト)
Cygwin 用の cygwin
他の OS にも汎用的に使用できます。
すべての設定を手動で調整するカスタム
[root@localhost haproxy-1.5.19]# mkdir /etc/haproxy
[root@localhost haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/
[root@localhost haproxy-1.5.19]# cp examples/haproxy.init /etc/init.d/haproxy
[root@localhost haproxy-1.5.19]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
[root@localhost haproxy-1.5.19]# chmod +x /etc/init.d/haproxy
[root@localhost ~]# chkconfig --add haproxy
(3) Haproxy 構成の導入
[root@localhost haproxy-1.5.19]# vi /etc/haproxy/haproxy.cfg
グローバル
ログ 127.0.0.1 local0
ログ 127.0.0.1 local1 通知
#log ログホスト local0 情報
マックスコン 4096
uid 99
ジッド99
デーモン
#デバッグ
#静かな
デフォルト
ロググローバル
モード http
オプション httplog
オプション dontlognull
再試行 3
# 再ディスパッチ
マックスコン 2000
タイムアウト 5000
クリタイムアウト 50000
srvタイムアウト 50000
ウェブクラスター 0.0.0.0:80 をリッスン
オプション httpchk GET /index.html
バランスラウンドロビン
サーバー inst1 192.168.1.61:80 チェックインター 2000 秋 3
サーバー inst2 192.168.1.62:80 チェックインター 2000 秋 3
各サーバーの後に重みを追加して、重み値を設定できます。
サーバー inst1 192.168.1.61:80 チェックインター 2000 秋 3重量 1
サーバー inst2 192.168.1.62:80 チェックインター 2000 秋 3重量2
各ステートメントの説明
グローバル
ログ 127.0.0.1 local0 \ロギングを設定し、ローカル0ログデバイスです。デフォルトはシステムログです。
ログ 127.0.0.1 local1 通知 \ログレベルは知らせ
#log ログホスト local0 情報
マックスコン4096 \最大接続数
uid 99 \ユーザーユーザID
ジッド99 \ユーザーギド
デーモン \デーモンプロセスとして実行
#デバッグ\デバッグモード、起動情報を標準出力に出力
#静かな \静音モード、起動時に出力なし
デフォルト
ロググローバル \使用球形で定義されたログ
モード http \モードはhttp
オプション httplog \使用httpロギングの形式
オプション dontlognull \確保するHAプロキシステータス データを検出するために、上位レベルのロード バランサによって送信されるハートビート パケットを記録しないでください。
再試行 3 \ノード接続失敗数が超過していることを確認してください。3ノードは使用できないと見なされます
# 再ディスパッチ\ロード時値が非常に大きい場合、現在のキューで長時間処理されている接続は自動的に終了します。
マックスコン 2000 \最大接続数
タイムアウト 5000 \接続タイムアウトMS
クリタイムアウト 50000クライアントのタイムアウトMS
srvタイムアウト 50000サーバータイムアウトMS
ウェブクラスタ 0.0.0.0:80 をリッスン \クラスターとリスニングのポート番号を定義する
オプション httpchk GET /index.html \サーバーを確認してくださいインデックス書類、ハートビート検出URLの設定
バランスラウンドロビン \ロードバランシングのスケジューリングアルゴリズムはラウンドロビンです
サーバー inst1 192.168.1.61:80 チェックインター 2000 秋 3 \オンラインノードを定義する
サーバー inst2 192.168.1.62:80 チェックインター 2000 秋 3
インター2000をチェック心拍数を検出することです(心拍数ごと)。2000ミリ秒1 回検出されます)、秋3はい3障害が発生するとサーバーは使用不可とみなされます
新しいバージョンでは、タイムアウト設定が次のように調整されました。
contimeout は timeout connect に置き換えられます。haproxy がクライアント要求をバックエンドサーバーに転送するために待機するタイムアウト時間を定義します。
clitimeout はタイムアウト クライアントに置き換えられます。クライアントの非アクティブ時のタイムアウトは、アプリが haproxy に接続するのにかかる時間です。
srvtimeout はタイムアウト サーバーに置き換えられます。クライアントがサーバーとの接続を確立した後、サーバーを待機するタイムアウト時間は、haproxy がバックエンド Web サーバーに接続するのにかかる時間です。
注記:
ハプロキシ8 つのスケジューリング アルゴリズムがあります
chroot /usr/share/haproxy \つまり、プログラムの実行時に参照されるルート ディレクトリの場所を変更するため、このコードがある場合は、このディレクトリを作成する必要があります。
ログレベルについて
静的レベル DEBUG
DEBUG レベルは、きめの細かい情報イベントがアプリケーションのデバッグに非常に役立つことを指摘しています。
静的レベル情報
INFO レベルは、メッセージがアプリケーションの実行プロセスを大まかなレベルで強調表示することを示します。
静的レベル WARN
WARN レベルは、潜在的なエラー状況を示します。
静的レベルエラー
ERROR レベルは、エラー イベントが発生しても、システムの継続的な動作には影響しないことを示します。
静的レベル FATAL
FATAL レベルは、重大なエラー イベントが発生するたびにアプリケーションが終了することを示します。
さらに、次の 2 つの特別なログ レベルが利用可能です。
静的レベル ALL
ALL レベルは最低レベルであり、すべてのログ記録を有効にするために使用されます。
静的レベルOFF
OFF レベルは最高レベルであり、すべてのログ記録をオフにするために使用されます。
[root@localhost haproxy-1.5.19]# /etc/init.d/haproxy を起動します
http://192.168.1.60/test.html
ページを更新してテストします
またはスクリプトを使用してテストする
[root@localhost ~]# for i in $(seq 10); do curl http://192.168.1.60/test.html ;完了
Haproxy はデフォルトではログを記録しません。haproxy.conf のグローバル セクションでログ出力を指定するだけでなく、システム ログ構成ファイルも構成する必要があります。
方法 1:
[root@localhost haproxy-1.4.24]# vi /etc/haproxy/haproxy.cfg
グローバル
# ログ 127.0.0.1 local0
# ログ 127.0.0.1 local1 通知
#log ログホスト local0 情報
マックスコン 4096
chroot /usr/share/haproxy
uid 99
ジッド99
デーモン
#デバッグ
#静かな
/dev/log local0 情報をログに記録する
/dev/log local0 通知をログに記録する
[root@localhost haproxy-1.4.24]# /etc/rsyslog.d/haproxy.conf をタッチします
[root@localhost haproxy-1.4.24]# vi /etc/rsyslog.d/haproxy.conf
($programname == 'haproxy' かつ $syslogseverity-text == 'info') の場合、 -/var/log/haproxy/haproxy-info.log
& ~
($programname == 'haproxy' かつ $syslogseverity-text == 'notice') の場合、 -/var/log/haproxy/haproxy-notice.log
& ~
[root@localhost haproxy-1.4.24]# サービスrsyslogを再起動します
[root@localhost ~]#/etc/init.d/haproxyを再起動します
[root@localhost ~]# cat /var/log/haproxy/haproxy-info.log
方法 2:
(1) /etc/haproxy/haproxy.confを編集する
[root@localhost ~]# vi /etc/haproxy/haproxy.cfg
グローバル
ログ 127.0.0.1 ローカル3
#local3 は、/etc/rsyslog.conf の設定に対応するデバイスで、情報のログ レベルはデフォルトでリサイクルされます。
(2) haproxyログファイルの書き込み
[root@localhost ~]# vim /etc/rsyslog.d/haproxy.conf
$ModLoad imudp
$UDPサーバー実行514
ローカル3.* /var/log/haproxy.log
&~
注記:
$ModLoad imudpログを収集するためのプロトコル UDP
$UDPサーバー実行514ログ収集に使用するポート番号を指定します
ローカル3.* /var/log/haproxy.logログの保存場所を指定する
(3) rsyslog のメイン設定ファイルを設定し、リモート ログを有効にします (オプション)
[root@localhost ~]# vim /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS=”-c 2 -r -m 0″
#-c 2 互換モードを使用します。デフォルトは -c 5 です。
#-r リモートログを有効にする
#-m 0 マークのタイムスタンプ。単位は分です。0の場合は機能が無効であることを示します。
(4) haproxyサービスとrsyslogサービスを再起動します。
[root@localhost ~]# systemctl rsyslogを再起動します
[root@localhost ~]# systemctl haproxyを再起動します
(5) Webサイト訪問後のログを確認する
[root@localhost ~]# cat /var/log/haproxy.log
拡張子: プロキシ mysql
mysql 0.0.0.0:3306 をリッスンする
サーバー mysql1 192.168.10.205:3306 チェックポート 3306 maxconn 300