目录
1、前期环境准备
1.准备4台主机
1. 设置主机名
2. 设置IP地址然后重启网卡
3. 关闭防火墙和selinux
4. 全部的服务器完成时间统一
二、配置haproxy(192.168.200.11)服务器
1. 安装haproxy
2. haproxy 配置中分成五部分内容
3. 配置HAproxy(192.168.200.11)
配置文件内容注释(详细内容还请自行查询)
4. 设置HTTP服务器IP地址映射主机名
三、配置HTTP服务器
1. 两台服务器安装httpd服务并启动(192.168.200.23web1 192.168.200.34web2)
2. 设置默认主页
四、测试结果
1. 客户端(192.168.200.10)安装elinks( 是一个基于文本的网页浏览器)
2. 使用elinks访问haproxy服务器
1、前期环境准备
1.准备4台主机
IP地址 | 主机名 | 角色 | 内存 |
192.168.200.10 | clinent | 客户端 | 2G |
192.168.200.11 | server | HAproxy服务器 | 2G |
192.168.200.23 | web1 | web服务1 | 2G |
192.168.200.34 | web2 | web服务2 | 2G |
1. 设置主机名
hostnamectl set-hostname +主机名
su
2. 设置IP地址然后重启网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network
3. 关闭防火墙和selinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
注释加'#' SELINUX=enforcing
添加 SELINUX=disabled
4. 全部的服务器完成时间统一
ntpdate cn.ntp.org.cn
二、配置HAproxy(192.168.200.11)服务器
1. 安装HAproxy
yum install haproxy -y
2. haproxy 配置中分成五部分内容
global: 设置全局配置参数,属于进程的配置,通常是和操作系统相关。
defaults:配置默认参数,这些参数可以被用到frontend,backend,Listen组件。
frontend:接收请求的前端虚拟节点,Frontend可以更加规则直接指定具体使用后端的。backend;
backend:后端服务集群的配置,是真实服务器,一个Backend对应一个或者多个实体服务器。
Listen :frontend和backend的组合体。
3. 配置HAproxy(192.168.200.11)
vim /etc/haproxy/haproxy.cfg
删除文件里所有的内容
添加新的配置内容
global
log 127.0.0.1 local3 info
maxconn 4096
uid nobody
# uid 99
gid nobody
# gid 99
daemon
nbproc 1
pidfile /run/haproxy.pid
defaults
log global
mode http
maxconn 2048
retries 3
option redispatch
contimeout 5000
clitimeout 50000
srvtimeout 50000
#timeout connect 5000
#timeout client 50000
#timeout server 50000
option abortonclose
stats uri /admin?stats
stats realm Private lands
stats auth admin:password
stats hide-version
frontend http-in
bind 0.0.0.0:80
mode http
log global
option httplog
option httpclose
acl html url_reg -i \.html$
use_backend html-server if html
default_backend html-server
backend html-server
mode http
balance roundrobin
option httpchk GET /index.html
cookie SERVERID insert indirect nocache
server html-A web1:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
server html-B web2:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5
重启haproxy服务
systemctl start haproxy.service
配置文件内容注释(详细内容还请自行查询)
# 全局设置(global)
global
# 日志配置,发送到本地的 syslog 服务
log 127.0.0.1 local3 info
# 最大连接数
maxconn 4096
# 运行用户和用户组
uid nobody
gid nobody
# 守护进程模式运行
daemon
# 进程数
nbproc 1
# PID 文件位置
pidfile /run/haproxy.pid# 默认设置(defaults)
defaults
# 使用全局日志配置
log global
# 工作模式为 HTTP
mode http
# 前端最大连接数
maxconn 2048
# 请求重试次数
retries 3
# 启用请求重新分发
option redispatch
# 连接超时时间(毫秒)
contimeout 5000
# 客户端超时时间(毫秒)
clitimeout 50000
# 服务器超时时间(毫秒)
srvtimeout 50000
# 断开连接选项
option abortonclose# 统计页面配置
stats uri /admin?stats
stats realm Private lands
stats auth admin:password
stats hide-version# 前端配置(frontend http-in)
frontend http-in
# 监听地址和端口
bind 0.0.0.0:80
# 工作模式
mode http
# 日志配置
log global
# 启用 HTTP 日志
option httplog
# 启用 HTTP 连接关闭选项
option httpclose
# ACL 匹配 .html 结尾的请求
acl html url_reg -i \.html$
# 使用后端条件
use_backend html-server if html
# 默认后端
default_backend html-server# 后端配置(backend html-server)
backend html-server
# 工作模式
mode http
# 负载均衡算法
balance roundrobin
# HTTP 健康检查
option httpchk GET /index.html
# Cookie 会话保持
cookie SERVERID insert indirect nocache
# 后端服务器定义:服务器ID,避免rr算法将客户机请求转发给其他服务器 ,对后端服务器的健康状况检查间隔为2000毫秒,连续2次健康检查成功,则认为是有效的,连续5次健康检查失败,则认为服务器宕机
server html-A web1:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
server html-B web2:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5
4. 设置HTTP服务器IP地址映射主机名
vim /etc/hosts
原内容不动添加
192.168.200.23 web1
192.168.200.34 web2
三、配置web服务器
1. 两台服务器安装httpd服务并启动(192.168.200.23web1 192.168.200.34web2)
yum install httpd -y
systemctl start httpd
设置开机自启动
systemctl enable httpd
2. 设置默认主页
web1
echo web1 > /var/www/html/index.html
web2
echo web2 > /var/www/html/index.html
四、测试结果
1..查看HAproxy状态
http://192.168.200.11/admin?stats
2. 客户端(192.168.200.10)安装elinks( 是一个基于文本的网页浏览器)
yum install -y elinks
3. 使用elinks访问HAproxy服务器
elinks --dump http://192.168.200.11