目录
[1. 设置主机名](#1. 设置主机名)
[2. 设置IP地址然后重启网卡](#2. 设置IP地址然后重启网卡)
[3. 关闭防火墙和selinux](#3. 关闭防火墙和selinux)
[4. 全部的服务器完成时间统一](#4. 全部的服务器完成时间统一)
二、配置haproxy(192.168.200.11)服务器
[1. 安装haproxy](#1. 安装haproxy)
[2. haproxy 配置中分成五部分内容](#2. haproxy 配置中分成五部分内容)
[3. 配置HAproxy(192.168.200.11)](#3. 配置HAproxy(192.168.200.11))
[4. 设置HTTP服务器IP地址映射主机名](#4. 设置HTTP服务器IP地址映射主机名)
[1. 两台服务器安装httpd服务并启动(192.168.200.23web1 192.168.200.34web2)](#1. 两台服务器安装httpd服务并启动(192.168.200.23web1 192.168.200.34web2))
[2. 设置默认主页](#2. 设置默认主页)
[1. 客户端(192.168.200.10)安装elinks( 是一个基于文本的网页浏览器)](#1. 客户端(192.168.200.10)安装elinks( 是一个基于文本的网页浏览器))
[2. 使用elinks访问haproxy服务器](#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. 设置主机名
bash
hostnamectl set-hostname +主机名
su
2. 设置IP地址然后重启网卡
bash
vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network
3. 关闭防火墙和selinux
bash
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
注释加'#' SELINUX=enforcing
添加 SELINUX=disabled
4. 全部的服务器完成时间统一
bash
ntpdate cn.ntp.org.cn
二、配置HAproxy(192.168.200.11)服务器
1. 安装HAproxy
bash
yum install haproxy -y
2. haproxy 配置中分成五部分内容
global: 设置全局配置参数,属于进程的配置,通常是和操作系统相关。
defaults:配置默认参数,这些参数可以被用到frontend,backend,Listen组件。
frontend:接收请求的前端虚拟节点,Frontend可以更加规则直接指定具体使用后端的。backend;
backend:后端服务集群的配置,是真实服务器,一个Backend对应一个或者多个实体服务器。
Listen :frontend和backend的组合体。
- 配置HAproxy(192.168.200.11)
bash
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地址映射主机名
bash
vim /etc/hosts
原内容不动添加
192.168.200.23 web1
192.168.200.34 web2
三、配置web服务器
1. 两台服务器安装httpd服务并启动(192.168.200.23web1 192.168.200.34web2)
bash
yum install httpd -y
systemctl start httpd
设置开机自启动
systemctl enable httpd
2. 设置默认主页
bash
web1
echo web1 > /var/www/html/index.html
web2
echo web2 > /var/www/html/index.html
四、测试结果
1..查看HAproxy状态
bash
http://192.168.200.11/admin?stats
2. 客户端(192.168.200.10)安装elinks(是一个基于文本的网页浏览器)
bash
yum install -y elinks
3. 使用elinks访问HAproxy服务器
bash
elinks --dump http://192.168.200.11