編譯安裝 lua
常用包
yum -y install 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
安裝包
yum install libtermcap-devel ncurses-devel libevent-devel readline-devel gcc gcc-c++ -y
下載
wget http://www.lua.org/ftp/lua-5.3.5.tar.gz
安裝
tar xvf lua-5.3.5.tar.gz
cd lua-5.3.5/
make linux test
查看版本
編譯安裝 haproxy
下載地址:https://src.fedoraproject.org/repo/pkgs/haproxy/
下載地址:http://www.haproxy.org/
tar xvf haproxy-2.1.0.tar.gz
cd haproxy-2.1.0/
make ARCH=x86_64 \ #CPU架構
TARGET=linux-glibc \ #通用linux內核
USE_PCRE=1 \ #PCRE支持正則表達式,用於用戶請求的uri
USE_OPENSSL=1 \ #https,證書
USE_ZLIB=1 \ #開啓壓縮
USE_SYSTEMD=1 \ #使用systemd啓動haproxy主進程
USE_CPU_AFFINITY=1 \ #CPU親和性,讓haproxy指定的進程工作在指定的CPU核心上
USE_LUA=1 \ #開啓lua,及lua和lua庫所在路徑
LUA_INC=/usr/local/src/lua-5.3.5/src/ \
LUA_LIB=/usr/local/src/lua-5.3.5/src/ \
PREFIX=/usr/local/haproxy #指定安裝路徑
make install PREFIX=/usr/local/haproxy
可執行程序 haproxy 放到 /usr/sbin/目錄下,方便應用
cp /usr/local/haproxy/sbin/haproxy /usr/sbin/
啓動腳本
vim /usr/lib/systemd/system/haproxy.service
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target
[Service]
ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
配置文件
mkdir /var/lib/haproxy
mkdir /etc/haproxy
vim /etc/haproxy/haproxy.cfg
global
maxconn 100000
chroot /usr/local/haproxy
#stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin
uid 99
gid 99
daemon
#nbproc 4
#cpu-map 1 0
#cpu-map 2 1
#cpu-map 3 2
#cpu-map 4 3
pidfile /var/lib/haproxy/haproxy.pid
log 127.0.0.1 local3 info
defaults
option http-keep-alive
option forwardfor
maxconn 100000
mode http
timeout connect 300000ms
timeout client 300000ms
timeout server 300000ms
listen stats
mode http
bind 0.0.0.0:9999
stats enable
log global
stats uri /haproxy-status
stats auth haadmin:q1w2e3r4ys
listen web_port
bind 192.168.43.9:80
mode http
log global
server web1 192.168.43.19:80 check inter 3000 fall 2 rise 5
啓動 haproxy
systemctl start haproxy