Haproxy部署Web群集

HAProxy是一款开源的、高性能的TCP/HTTP负载均衡器和代理服务器,广泛应用于提高网站和应用的可用性和性能。本篇博客将介绍如何使用HAProxy部署一个高可用的Web集群。

 

目录

 

环境准备

安装HAProxy

 配置HAProxy

配置解析

配置Web服务器


环境准备

假设我们有以下服务器:
- **HAProxy节点**:IP 192.168.1.1
- **Web Server 1**:IP 192.168.1.2
- **Web Server 2**:IP 192.168.1.3
- **VIP(虚拟IP)**:192.168.1.100

安装HAProxy

在HAProxy节点上安装HAProxy:

```bash
sudo apt-get update
sudo apt-get install haproxy -y
```

 配置HAProxy

编辑HAProxy的配置文件`/etc/haproxy/haproxy.cfg`。以下是一个基本的配置示例:

```plaintext
global
    log /dev/log local0
    log /dev/log local1 notice
    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

defaults
    log     global
    mode    http
    option  httplog
    option  dontlognull
    timeout connect 5000
    timeout client  50000
    timeout server  50000
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http

frontend http_front
    bind *:80
    default_backend http_back

backend http_back
    balance roundrobin
    server web1 192.168.1.2:80 check
    server web2 192.168.1.3:80 check

listen stats
    bind *:8080
    stats enable
    stats uri /stats
    stats auth admin:admin
```

配置解析

- **global**和**defaults**部分包含HAProxy的全局配置和默认配置。
- **frontend**部分定义前端配置,绑定在80端口上,接收HTTP请求并将其转发到后端。
- **backend**部分定义后端服务器的配置,使用轮询(roundrobin)算法将请求分发到两台Web服务器上,并启用健康检查(check)。
- **listen**部分配置一个统计页面,监听8080端口,提供统计信息的访问。

 启动和检查HAProxy

启动HAProxy服务:

```bash
sudo systemctl start haproxy
sudo systemctl enable haproxy
```

访问http://192.168.1.1:8080/stats,使用用户名`admin`和密码`admin`登录,可以查看HAProxy的统计信息页面,确保所有配置正确。

配置Web服务器

在Web Server 1和Web Server 2上安装Web服务器(例如Nginx或Apache)并配置简单的HTML页面:

```bash
sudo apt-get update
sudo apt-get install nginx -y
```

在`/var/www/html/index.html`中编辑内容,例如:

```html
<!DOCTYPE html>
<html>
<head>
    <title>Web Server 1</title>
</head>
<body>
    <h1>Hello from Web Server 1</h1>
</body>
</html>

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值