編譯安裝HAProxy1.8.20

一、安裝前準備

官網下載安裝包:http://www.haproxy.org/download/1.8/src/haproxy-1.8.20.tar.gz

[root@centos src]$cd /usr/local/src/
[root@centos src]$ls
haproxy-1.8.20.tar.gz
[root@centos src]$yum install -y gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel net-tools vim iotop bc zip unzip zlib-devel lrzsz tree screen lsof tcpdump wget ntpdate 

二、開始安裝

[root@centos src]$tar xvf haproxy-1.8.20.tar.gz
[root@centos src]$cd haproxy-1.8.20/
[root@centos haproxy-1.8.20]$make ARCH=x86_64 TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_CPU_AFFINITY=1 PREFIX=/usr/local/haproxy
[root@centos haproxy-1.8.20]$ make install PREFIX=/usr/local/haproxy
install -d "/usr/local/haproxy/sbin"
install haproxy  "/usr/local/haproxy/sbin"
install -d "/usr/local/haproxy/share/man"/man1
install -m 644 doc/haproxy.1 "/usr/local/haproxy/share/man"/man1
install -d "/usr/local/haproxy/doc/haproxy"
for x in configuration management architecture peers-v2.0 cookie-options lua WURFL-device-detection proxy-protocol linux-syn-cookies network-namespaces DeviceAtlas-device-detection 51Degrees-device-detection netscaler-client-ip-insertion-protocol peers close-options SPOE intro; do \
    install -m 644 doc/$x.txt "/usr/local/haproxy/doc/haproxy" ; \
done
[root@centos haproxy-1.8.20]$cp haproxy /usr/sbin/

三、創建啓動腳本

[root@centos ~]$vim /usr/lib/systemd/system/haproxy.service
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target
[Service] #支持多配置文件讀取,類似於配置文件的include功能
ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target

四、創建目錄和用戶

[root@centos ~]$mkdir /etc/haproxy
[root@centos ~]$useradd -r -s /sbin/nologin haproxy
[root@centos ~]$mkdir /var/lib/haproxy
[root@centos ~]$chown -R haproxy.haproxy /var/lib/haproxy/
[root@centos ~]$cat /etc/haproxy/haproxy.cfg 
global
    log         127.0.0.1 local2

    chroot      /usr/local/haproxy
    pidfile       /run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats mode 600 level admin

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue             1m
    timeout connect         10s
    timeout client               1m
    timeout server             1m
    timeout http-keep-alive 10s
    timeout check               10s
    maxconn                       3000
# haproxy.cfg文件中定義了chroot、pidfile、user、group等參數,如果系統沒有相應的資源會導致haproxy無法啓動,具體參考日誌文件/var/log/messages

五、啓動haproxy

[root@centos ~]$systemctl start haproxy
[root@centos ~]$systemctl enable haproxy
Created symlink from /etc/systemd/system/multi-user.target.wants/haproxy.service to /usr/lib/systemd/system/haproxy.service.
[root@centos ~]$ps -ef | grep haproxy
root       8492      1  0 20:48 ?        00:00:00 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
haproxy    8495   8492  0 20:48 ?        00:00:00 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
root       8606   7171  0 20:53 pts/0    00:00:00 grep --color=auto haproxy
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章