目录
二、配置haproxy(192.168.200.11)服务器
1. 两台服务器安装httpd服务并启动(192.168.200.23web1 192.168.200.34web2)
3. 两台服务器安装httpd php服务并启动(192.168.200.54php1 192.168.200.55php2)
2. 客户端(192.168.200.10)安装elinks( 是一个基于文本的网页浏览器)
1、前期环境准备
1.准备6台主机
IP地址 | 主机名 | 角色 | 内存 |
192.168.200.10 | clinent | 客户端 | 2G |
192.168.200.11 | server | haproxy服务器 | 2G |
192.168.200.23 | web1 | wed服务html1 | 1G |
192.168.200.34 | web2 | wed服务html2 | 1G |
192.168.200.54 | php1 | wed服务php1 | 1G |
192.168.200.55 | php2 | wed服务php2 | 1G |
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
acl php url_reg -i \.php$
use_backend php-server if php
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 1 check inter 2000 rise 2 fall 5
server html-B web2:80 weight 1 cookie 2 check inter 2000 rise 2 fall 5
backend php-server
mode http
balance roundrobin
option httpchk GET /index.php
cookie SERVERID insert indirect nocache
server php-A php1:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
server php-B php2:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5
#global
log 127.0.0.1 local3 info # 配置日志记录到本地地址 127.0.0.1,日志级别为 info
maxconn 4096 # 最大连接数设置为 4096
uid nobody # 以 nobody 用户身份运行
gid nobody # 以 nobody 组身份运行
daemon # 以守护进程模式运行
nbproc 1 # 使用 1 个进程
pidfile /run/haproxy.pid # 存储 PID 的文件位置defaults
log global # 使用全局日志配置
mode http # 模式为 HTTP
maxconn 2048 # 最大连接数设置为 2048
retries 3 # 重试次数设置为 3
option redispatch # 启用请求重发选项
contimeout 5000 # 连接超时设置为 5000 毫秒
clitimeout 50000 # 客户端超时设置为 50000 毫秒
srvtimeout 50000 # 服务器超时设置为 50000 毫秒
option abortonclose # 启用客户端关闭连接时中断处理选项stats uri /admin?stats # 统计页面的 URI
stats realm Private lands # 统计页面的认证域
stats auth admin:password # 统计页面的认证用户名和密码
stats hide-version # 隐藏版本信息frontend http-in
bind 0.0.0.0:80 # 监听所有 IP 地址的 80 端口
mode http # 工作模式为 HTTP
log global # 使用全局日志配置
option httplog # 启用 HTTP 日志记录
option httpclose # 启用 HTTP 连接关闭选项
acl html url_reg -i \.html$ # 定义 acl 规则,匹配 .html URL
use_backend html-server if html # 如果匹配 .html,则使用 html-server 后端
acl php url_reg -i \.php$ # 定义 acl 规则,匹配 .php URL
use_backend php-server if php # 如果匹配 .php,则使用 php-server 后端
default_backend html-server # 默认使用 html-server 后端backend html-server
mode http
balance roundrobin # 负载均衡算法为轮询
option httpchk GET /index.html # HTTP 检查选项,使用 GET 请求检测后端服务
cookie SERVERID insert indirect nocache # 插入 cookie 以标识服务器
server html-A web1:80 weight 1 cookie 1 check inter 2000 rise 2 fall 5
server html-B web2:80 weight 1 cookie 2 check inter 2000 rise 2 fall 5backend php-server
mode http
balance roundrobin # 负载均衡算法为轮询
option httpchk GET /index.php # HTTP 检查选项,使用 GET 请求检测后端服务
cookie SERVERID insert indirect nocache # 插入 cookie 以标识服务器
server php-A php1:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
server php-B php2: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
192.168.200.54 php1
192.168.200.55 php2
三、配置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
3. 两台服务器安装httpd php服务并启动(192.168.200.54php1 192.168.200.55php2)
yum install httpd php -y
systemctl start httpd
设置开机自启动
systemctl enable httpd
4. 设置默认主页
php1
echo php1 > /var/www/html/index.php
php2
echo php2 > /var/www/html/index.php
四、测试结果
1..查看HAproxy状态
http://192.168.200.11/admin?stats
2. 客户端(192.168.200.10)安装elinks( 是一个基于文本的网页浏览器)
yum install -y elinks