HAProxy 1.5.2

最終検証日

2014/07/23

コンパイル

注釈

基本的には管理者ユーザ(rootなど)で実施していることを前提としています

#------------------------------------------------------------
# HAProxy 1.5.2
#------------------------------------------------------------
BASE=/opt/brew

# ソースダウンロード先
comp_dir=/usr/local/src
# パッケージ名
pack_name=haproxy
# バージョン
version=-1.5.2
# ソースのファイル形式
ext=.tar.gz
# tar解凍時のオプション
ext_opt=z
# インストール先ディレクトリ
ins_dir=/opt/${pack_name}/${version##-}
# ダウンロード元パッケージ
dl_uri="http://www.haproxy.org/download/1.5/src/haproxy-1.5.2.tar.gz"

cd ${comp_dir}
rm -rf ${pack_name}${version}
test -f ${pack_name}${version}${ext} \
    || wget ${dl_uri} -O ${pack_name}${version}${ext}
tar ${ext_opt}xf ${pack_name}${version}${ext}
cd ${pack_name}${version}
make PREFIX=${ins_dir} TARGET=linux2628\
  && make install PREFIX=${ins_dir}

Pathの設定

for type in $(ls -1 ${ins_dir})
do
    for src in $(find ${ins_dir}/${type} -xtype f)
    do
        parent=`dirname ${src#*/${type}/}`
        filename=`basename ${src}`
        mkdir -p ${BASE}/${type}/${parent}
        echo "ln -fs ${src} ${BASE}/${type}/${parent}/${filename}"
        ln -fs ${src} ${BASE}/${type}/${parent}/${filename}
    done
done

grep -q ${BASE}/bin ~/.bashrc \
  || echo "export PATH=${BASE}/bin:${BASE}/sbin:"'${PATH}' >> ~/.bashrc \
  ;  source ~/.bashrc

主なconfigureオプション

PREFIX=[DIR]
インストール先ディレクトリの指定
TARGET=[TYPE]
インストール先のシステムを入力

初期設定

ユーザの作成

ユーザはセキュリティのため、一般ユーザを使用します。ここではhaproxyのデフォルトのユーザとします。

id haproxy || useradd -r haproxy

必要なディレクトリの作成

mkdir -p ${ins_dir}/etc
mkdir -p ${ins_dir}/var/run

設定ファイル

haproxy.cfg

デフォルトではファイルがインストールされないので、サンプル用ファイルをコピーして使用します。 コピー後、システムに合わせてカスタマイズしていきます。

cd ${comp_dir}/${pack_name}${version}
cp ./examples/haproxy.cfg ${ins_dir}/etc/.
vim ${ins_dir}/etc/haproxy.cfg

起動

インストール先に合わせて実行します。

cd /opt
./sbin/haproxy -f ./etc/haproxy.cfg -p ./var/run/haproxy.pid -D

停止

インストール先に合わせて実行します。

cd /opt
cat ./var/run/haproxy.pid | xargs kill