1 #!/bin/bash
2
3 #需要lua-5.3.5.tar.gz、haproxy-2.0.14.tar.gz在家目录下
4 #1 编译安装lua
5 #安装编译环境需要的包
6 yum -y install gcc openssl-devel pcre-devel systemd-devel readline-devel
7
8 #下载lua包
9 #wget http://www.lua.org/ftp/lua-5.3.5.tar.gz
10
11 # 解压到lua包到指定的文件夹 -C 指定文件夹
12
13 tar xvf lua-5.3.5.tar.gz -C /usr/local/src
14
15 cd /usr/local/src/lua-5.3.5/
16
17 #编译安装lua
18 make linux test
19
20 #2 编译安装haproxy
21 cd
22
23 tar xvf haproxy-2.0.14.tar.gz -C /usr/local/src/
24
25 cd /usr/local/src/haproxy-2.0.14/
26
27 #编译参数
28 make ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_LUA=1 LUA_INC=/usr/local/src/lua-5.3.5/src/ LUA_LIB=/usr/local/src/lua-5.3.5/src/
29
30 make install PREFIX=/apps/haproxy
31
32 #软连接方式配置环境变量
33 ln -s /apps/haproxy/sbin/haproxy /usr/sbin/
34
35 #准备配置文件和socket目录
36 mkdir /var/lib/haproxy -p
37 mkdir /etc/haproxy -p
38
39 #创建启动haproxy用的账户
40 useradd -r -s /sbin/nologin -d /var/lib/haproxy/ haproxy
41
42 #导入cfg文件
43 cat > /etc/haproxy/haproxy.cfg <<EOF
44 global
45 maxconn 100000
46 chroot /apps/haproxy
47 stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin
48 #uid 99
49 #gid 99
50 user haproxy
51 group haproxy
52 daemon
53 #nbproc 4
54 #cpu-map 1 0
55 #cpu-map 2 1
56 #cpu-map 3 2
57 #cpu-map 4 3
58 pidfile /var/lib/haproxy/haproxy.pid
59 log 127.0.0.1 local2 info
60
61 defaults
62 option http-keep-alive
63 option forwardfor
64 maxconn 100000
65 mode http
66 timeout connect 300000ms
67 timeout client 300000ms
68 timeout server 300000ms
69
70 listen stats
71 mode http
72 bind 0.0.0.0:9999
73 stats enable
74 log global
75 stats uri /haproxy-status
76 stats auth haadmin:123456
77
78 #listen web_port
79 # bind 10.0.0.7:80
80 # mode http
81 # log global
82 # server web1 127.0.0.1:8080 check inter 3000 fall 2 rise 5
83
84 EOF
85
86 #开机启动service文件
87
88 cat > /usr/lib/systemd/system/haproxy.service <<EOF
89 [Unit]
90 Description=HAProxy Load Balancer
91 After=syslog.target network.target
92 [Service]
93 ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
94 ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p \
95 /var/lib/haproxy/haproxy.pid
96 ExecReload=/bin/kill -USR2 \$MAINPID
97 [Install]
98 WantedBy=multi-user.target
99 EOF
100
101 # 文件生效
102 systemctl daemon-reload
103
104
105 systemctl enable --now haproxy.service
106 [root@rs2 ~]#vim haproxy.sh
107
108 #!/bin/bash
109
110 #需要lua-5.3.5.tar.gz、haproxy-2.0.14.tar.gz在家目录下
111 #1 编译安装lua
112 #安装编译环境需要的包
113 yum -y install gcc openssl-devel pcre-devel systemd-devel readline-devel
114
115 #下载lua包
116 #wget http://www.lua.org/ftp/lua-5.3.5.tar.gz
117
118 # 解压到lua包到指定的文件夹 -C 指定文件夹
119
120 tar xvf lua-5.3.5.tar.gz -C /usr/local/src
121
122 cd /usr/local/src/lua-5.3.5/
123
124 #编译安装lua
125 make linux test
126
127 #2 编译安装haproxy
128 cd
129
130 tar xvf haproxy-2.0.14.tar.gz -C /usr/local/src/
131
132 cd /usr/local/src/haproxy-2.0.14/
133
134 #编译参数
135 make ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_LUA=1 LUA_INC=/usr/local/src/lua-5.3.5/src/ LUA_LIB=/usr/local/src/lua-5.3.5/src/
136
137 make install PREFIX=/apps/haproxy
138
139 #软连接方式配置环境变量
140 ln -s /apps/haproxy/sbin/haproxy /usr/sbin/
141
142 #准备配置文件和socket目录
143 mkdir /var/lib/haproxy -p
144 mkdir /etc/haproxy -p
145
146 #创建启动haproxy用的账户
147 useradd -r -s /sbin/nologin -d /var/lib/haproxy/ haproxy
148
149 #导入cfg文件
150 cat > /etc/haproxy/haproxy.cfg <<EOF
151 global
152 maxconn 100000
153 chroot /apps/haproxy
154 stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin
155 #uid 99
156 #gid 99
157 user haproxy
158 group haproxy
159 daemon
160 #nbproc 4
161 #cpu-map 1 0
162 #cpu-map 2 1
163 #cpu-map 3 2
164 #cpu-map 4 3
165 pidfile /var/lib/haproxy/haproxy.pid
166 log 127.0.0.1 local2 info
167
168 defaults
169 option http-keep-alive
170 option forwardfor
171 maxconn 100000
172 mode http
173 timeout connect 300000ms
174 timeout client 300000ms
175 timeout server 300000ms
176
177 listen stats
178 mode http
179 bind 0.0.0.0:9999
180 stats enable
181 log global
182 stats uri /haproxy-status
183 stats auth haadmin:123456
184
185 #listen web_port
186 # bind 10.0.0.7:80
187 # mode http
188 # log global
189 # server web1 127.0.0.1:8080 check inter 3000 fall 2 rise 5
190
191 EOF
192
193
194 #开机启动service文件
195
196 cat > /usr/lib/systemd/system/haproxy.service <<EOF
197 [Unit]
198 Description=HAProxy Load Balancer
199 After=syslog.target network.target
200 [Service]
201 ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
202 ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p \
203 /var/lib/haproxy/haproxy.pid
204 ExecReload=/bin/kill -USR2 \$MAINPID
205 [Install]
206 WantedBy=multi-user.target
207 EOF
208
209 # 文件生效
210 systemctl daemon-reload
211
212 systemctl enable --now haproxy.service