LoginSignup
35
35

More than 5 years have passed since last update.

HAproxyインストールメモ

Last updated at Posted at 2014-08-28

CentOS6.5にHAProxyをインストールするメモです。

参考資料
L7ロードバランサHaproxyを使う(その2 設定から起動)
http://koexuka.blogspot.jp/2013/11/l7haproxy.html

L7ロードバランサHaproxyを使う(その3 syslogの設定とコマンドラインツール)
http://koexuka.blogspot.jp/2013/11/l7haproxy-syslog.html

 

haproxy-install.txt
#*********************************************************************
# haproxy
#*********************************************************************
cd /usr/local/src
curl -L -o haproxy-1.5.3.tar.gz http://www.haproxy.org/download/1.5/src/haproxy-1.5.3.tar.gz
tar zxvf haproxy-1.5.3.tar.gz
cd haproxy-1.5.3

make TARGET=linux26

make install

mkdir -p /var/run/haproxy

cp examples/haproxy.init /etc/init.d/haproxy
chmod 755 /etc/init.d/haproxy
vim /etc/init.d/haproxy
-----------------------------
:%s;/usr/sbin;/usr/local/sbin;g
-----------------------------


vi /etc/logrotate.d/haproxy
-----------------------------
/var/log/haproxy/haproxy.log {
  missingok
  notifempty
  sharedscripts
  postrotate
  /etc/init.d/haproxy reload > /dev/null 2>/dev/null || true
  endscript
}
-----------------------------

groupadd haproxy
useradd -s /sbin/nologin haproxy -g haproxy


mkdir -p /etc/haproxy
cp -p examples/haproxy.cfg /etc/haproxy/.


# http://koexuka.blogspot.jp/2013/11/l7haproxy.html
vi /etc/haproxy/haproxy.cfg
-----------------------------
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
    # ログの出力 
    log         127.0.0.1 local6 debug

    # pidファイルのパス
    pidfile     /var/run/haproxy.pid

    # 1プロセスに対する最大接続数
    maxconn     4096

    # 実行ユーザとグループ
    user        haproxy
    group       haproxy

    # 起動プロセスはバックグラウンドで動作します。。
    daemon

    # 起動するプロセス数。公式には'1'のままで良いとのことですが、16コアCPUだと4くらいが最もパフォーマンスが出た。。
    nbproc 1

   # プロセスごとの最大ファイルディスクリプタを設定。書かなくても自動で設定されるらしい。
    ulimit-n 12000

    # 統計情報が見れる。
    stats socket /var/run/haproxy/stats.socket uid 105 gid 105


#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will 
# use if not designated in their block
#---------------------------------------------------------------------
defaults
   # L7でロードバランス。'mode tcp'とすればTCPレベル(L4)でロードバランスするので処理速度の向上が見込める。
    mode        http 

    # globalセクションでの設定が引き継がれる。
    log         global

    # ヘルスチェックのログを書き出す。
    option      log-health-checks

    # backendサーバに接続できない時のタイムアウト秒数(ミリ秒)
    # default 10 second time out if a backend is not found
    timeout connect 10000

    # クライアントサイドでのタイムアウト秒数。' timeout server 'と同じ値が推奨とのこと。
    timeout client  30000

    # サーバサイドのタイムアウト秒数
    timeout server  30000

    # 接続に失敗した際のリトライ回数
    retries     3



# 8088ポートで待受ける
# http://example.com/haproxy?hastats
listen hastats *:8088
    mode http
    maxconn 64
    timeout connect 5000
    timeout client 10000
    timeout server 10000
    stats enable
    stats show-legends
    stats uri /haproxy?hastats

    # IDとパスワード
    stats auth admin:adminadmin



# 80番ポートで待ち受ける。
frontend  all 0.0.0.0:80

    # デフォルトのバックエンドは app を使う。
    default_backend      app


#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
# app というバックエンドサーバ群
backend app

    # source ipで振り分け
    balance     source

    # ラウンドロビンで振り分け。
    #balance     roundrobin

    # サーバは以下の台数負荷分散される。 weight '数値' とすることで振り分けの比重を設定できる。
    server  app1 127.0.0.1:8080 check

-----------------------------


# haproxy状態を確認するコマンドラインツール
yum install --enablerepo=epel socat

/etc/init.d/haproxy restart


// 一般的な情報を出力
echo "show info" | socat unix-connect:/var/run/haproxy/stats.socket stdio

// エラー情報を出力
echo "show errors" | socat unix-connect:/var/run/haproxy/stats.socket stdio

// 統計情報を出力
echo "show stats" | socat unix-connect:/var/run/haproxy/stats.socket stdio





# log設定
vi /etc/rsyslog.conf

-----------------------------
#$ModLoad imudp
#$UDPServerRun 514
↓↓↓
$ModLoad imudp
$UDPServerRun 514
-----------------------------
/etc/init.d/rsyslog restart


mkdir -p /etc/rsyslog.d

vi /etc/rsyslog.d/haproxy.conf
-----------------------------
$ModLoad imudp
$UDPServerRun 514
$template Haproxy,"%msg%\n"
local6.=info -/var/log/haproxy/haproxy.log;Haproxy
local6.notice -/var/log/haproxy/admin.log;Haproxy
# don't log anywhere else
local6.* ~
-----------------------------
35
35
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
35