haproxy

haproxy 重新配7.5虚拟机
server1
yum install -y haproxy
在这里插入图片描述
rpm -qpl 包 查看安装生成的文件
vim /etc/haproxy/haproxy.cfg 配置文件
在这里插入图片描述
安装好会生成用户haproxy
在这里插入图片描述
vim /etc/haproxy/haproxy.cfg
#---------------------------------------------------------------------
#main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend main
bind *:80
default_backend webserver

#---------------------------------------------------------------------
#static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend webserver
balance roundrobin
server web1 172.25.18.2:80 check
server web2 172.25.18.3:80 check
轮询机制

在这里插入图片描述
server2 3
yum install -y httpd
写发布文件
systemctl start httpd
主机
curl 172.25.18.1
在这里插入图片描述
日志
server1
vim /etc/rsyslog.conf
local7.* /var/log/boot.log
下面添加
local2.* /var/log/haprox.log

在这里插入图片描述
systemctl restart rsyslog.service
ll /var/log/haproxy.log查看

vim /etc/haproxy/haproxy.cfg
添加
stats uri /admin/stats
monitor-uri /monitoruri

在这里插入图片描述
systemctl restart haproxy.service

测试
主机
浏览器
172.25.18.1/admin/stats
在这里插入图片描述
172.25.18.1/monitoruri显示 200 ok 就是正确

在这里插入图片描述

server1
添加用户和密码
vim /etc/haproxy/haproxy.cfg
stats admin:westos

在这里插入图片描述
重启服务
主机
浏览器
172.25.18.1/admin/stats
在这里插入图片描述

server1
stats refresh 5s 每过5s刷新
在这里插入图片描述

禁止黑名单
frontend下面
bind *:80下面添加
acl blacklist src 172.25.18.250
http-request deny if blacklist
errorloc 403 http://172.25.18.1:8080/index.html
将错误返回到本机的8080端口

systemctl restart haproxy
server1
yum install -y httpd
写发布文件
vim /etc/httpd/conf/httpd.conf 修改端口因为80被haproxy占用
Listen 8080
systemctl start httpd
在这里插入图片描述

主机访问
172.25.18.1
在这里插入图片描述

动静请求分离
vim /etc/haproxy/haproxy.conf
errorloc 下面
use_backend dynamic if {path_end .php }

default_backend static

backend dynamic
ba不动
删除web2

backend static
ba照搬
web2配置
注释掉黑名单

在这里插入图片描述
systemctl restart haproxy

server2 3
yum install -y php
写php发布文件
server2 <?
phpinfo()
?>
server3 server3

systemctl restart httpd

主机测试

172.25.18.1/index.php
在这里插入图片描述
172.25.18.1
在这里插入图片描述

读写操作

acl read method HEAD
acl read method GET
acl write method POST
acl write method PUT

注释掉 use_backend dynamic if {path_end .php }

use_backend dynamic if write
use_backend static if read

systemctl restart haproxy
systemctl restart httpd

找upload放在server2 /var/www/html下
删除原来的发布文件php
将upload里面的文件移出来
mv upload/*
chmod 777 upload
在这里插入图片描述
vim upload_file.php
修改文件2000000
在这里插入图片描述
scp -r index.php upload upl_f server3:/var/www/html 跟server2一样的操作
测试
主机
172.25.18.1/index.php
上传图片测试
可以写入名字区分
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### HAProxy 配置与使用指南 #### 1. 安装HAProxy 在 CentOS 上安装 HAProxy 可以通过 Yum 软件包管理工具完成。以下是具体的命令: ```bash sudo yum install -y epel-release sudo yum install -y haproxy ``` 此步骤会自动下载并安装最新稳定版的 HAProxy 到系统中[^1]。 #### 2. 基础配置文件说明 HAProxy 的核心配置位于 `/etc/haproxy/haproxy.cfg` 文件中。该文件分为多个部分,主要包括全局设置 (`global`)、默认设置 (`defaults`) 和前端/后端定义 (`frontend`, `backend`)。以下是一个简单的示例: ```cfg global log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners stats timeout 30s user haproxy group haproxy daemon defaults log global mode http option httplog option dontlognull retries 3 timeout connect 5000ms timeout client 50000ms timeout server 50000ms frontend http_front bind *:80 default_backend http_back backend http_back balance roundrobin server web1 192.168.1.101:80 check server web2 192.168.1.102:80 check ``` 上述配置实现了基本的 HTTP 流量负载均衡功能,其中 `balance roundrobin` 表明采用轮询算法分配请求给后端服务器。 #### 3. 动静分离配置 为了提高静态资源加载速度,可以将动态和静态内容分开处理。例如,在同一台 HAProxy 中分别指定不同的后端来处理不同类型的流量。可以通过 URL 或扩展名匹配实现这一目标: ```cfg frontend main bind *:80 acl is_static path_beg /static/ use_backend static if is_static default_backend dynamic backend static mode http balance roundrobin server s1 192.168.1.103:80 check backend dynamic mode http balance leastconn server d1 192.168.1.104:80 check ``` 在此配置下,访问路径以 `/static/` 开头的内容会被转发至专门负责静态资源的服务节点;其他请求则由动态后端处理[^4]。 #### 4. Kubernetes 环境下的部署 对于容器化环境中的应用,推荐使用 Helm Chart 来简化 HAProxy 的部署流程。Helm 是一种流行的 Kubernetes 应用程序打包工具,能够帮助管理员轻松管理和升级复杂的应用栈。haproxytech 提供了一个官方支持的 Helm 图表仓库,用户只需执行几条简单指令即可完成初始化工作: ```bash helm repo add haproxytech https://haproxytech.github.io/helm-charts/ helm install my-haproxy haproxytech/haproxy-ingress --namespace ingress-controller --create-namespace ``` 这组命令不仅完成了基础架构构建,还允许进一步自定义参数满足个性化需求[^3]。 #### 5. 性能监控与调优 借助 Prometheus 和 Grafana 组合方案可有效提升运维效率。首先需引入专用插件——HAProxy Exporter,它可以从运行实例提取指标数据以便后续分析展示。其典型应用场景包括但不限于连接数统计、响应时间测量以及错误率追踪等方面[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值