Haproxy安裝及配置

實驗環境
L:Linux(centos 7.6) http://mirrors.cqu.edu.cn/CentOS/7.6.1810/isos/x86_64/
H: Haproxy(1.8.20) html

主機信息:
部署規劃:
172.24.77.241(sr1.dj.com):Tomcat服務器1
172.24.77.242(sr2.dj.com):Tomcat服務器2
172.24.77.243(sr3.dj.com):Haproxy服務器
一、 安裝依賴包
#yum 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 -y
二、 編譯安裝Haproxy
#cd /usr/local/src/
Haproxy安裝及配置
解壓安裝包
#tar xvf haproxy-1.8.20.tar.gz
#cd 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
Haproxy安裝及配置
#make install PREFIX=/usr/local/haproxy
Haproxy安裝及配置
三、 建立啓動腳本
#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 /run/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
Haproxy安裝及配置
四、 建立目錄和用戶
#mkdir /etc/haproxy
#cd /etc/haproxy
查看默認haproxy配置文件
#/usr/local/src/haproxy-1.8.20
#find ./ -name .cfg
自定義配置文件
#vim /etc/haproxy/haproxy.cfg
global
chroot /usr/local/haproxy
#stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin
user haproxy
group haproxy
daemon
#nbproc 4
#cpu-map 1 0
#cpu-map 2 1
#cpu-map 3 2
#cpu-map 4 3
pidfile /usr/local/haproxy/run/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 0.0.0.0:80
mode http
log global
server web1 172.24.77.241:8080 check inter 3000 fall 2 rise 5
server web1 172.24.77.242:8080 check inter 3000 fall 2 rise 5
建立啓動用戶
#useradd haproxy -s /sbin/nologin
#mkdir /var/lib/haproxy
受權目錄
#chown haproxy.haproxy /var/lib/haproxy/ -R
#systemctl restart haproxy
五、 啓動並測試haproxy
#systemctl start haproxy
#ps -ef |grep haproxy
Haproxy安裝及配置
查看端口占用
#lsof -i:80
Haproxy安裝及配置
設置開機啓動
#systemctl enable haproxy
Haproxy安裝及配置
六、 配置七層代理
配置並測試Web後端
#http://172.24.77.241:8080/
Haproxy安裝及配置
測試Haproxy反向代理
http://192.168.0.243/
Haproxy安裝及配置
七、設置ACL實現/a路徑代理轉發到a集羣,/b路徑代理轉發到/b集羣
#vim /etc/haproxy/haproxy.cfg
listen web_port
bind 172.24.77.243:80
mode http
acl static_path_a path_beg -i /a
use_backend uri_a_host if static_path_a
default_backend default_host
acl static_path_b path_beg -i /b
use_backend uri_b_host if static_path_b
default_backend default_hostjava

backend uri_a_host
mode http
server web1 172.24.77.241:8080 check inter 2000 fall 3 rise 5linux

backend uri_b_host
mode http
server web2 172.24.77.242:8080 check inter 2000 fall 3 rise 5c++

backend default_host
mode http
server web3 172.24.77.243:8080 check inter 2000 fall 3 rise 5web

Haproxy安裝及配置

八、 配置後端Tomcat服務器:241
#cd /usr/local/tomcat/webapps/
#mkdir a/{lib,classes,WEB-INF,META-INF} –pv
Haproxy安裝及配置
建立backend server-a首頁
#vim a/index.jsp
<%@ page language="java" %>
<%@ page import="java.util." %>
<html>
<head>
<title>JSP Test Page</title>
</head>
<body>
<% out.println("Backend-Server-a-241");%>
</body>
</html>
重啓Tomcat
#catalina.sh stop
#catalina.sh start
Haproxy安裝及配置
測試訪問Backend
#http://172.24.77.241:8080/a/
Haproxy安裝及配置
九、 配置後端Tomcat服務器:242
#cd /usr/local/tomcat/webapps/
#mkdir b/{lib,classes,WEB-INF,META-INF} -pv
Haproxy安裝及配置
建立backend server-b首頁
#vim b/index.jsp
<%@ page language="java" %>
<%@ page import="java.util.
" %>
<html>
<head>
<title>JSP Test Page</title>
</head>
<body>
<% out.println("Backend-Server-b-242");%>
</body>
</html>
重啓Tomcat
#catalina.sh stop
#catalina.sh start
Haproxy安裝及配置
測試訪問Backend
#http://172.24.77.241:8080/b/
Haproxy安裝及配置
測試HAproxy轉發
#http://172.24.77.243/a/
Haproxy安裝及配置
#http://172.24.77.243/b/
Haproxy安裝及配置vim

相關文章
相關標籤/搜索