Haproxy搭建Web群集

一、常见的Web集群调度器

  • 目前常见的Web集群调度器分为软件和硬件
  • 软件通常使用开源的LVS、Haproxy、Nginx
  • 硬件一般使用比较多的时F5,也有很多人使用国内的一些产品,如梭子鱼、绿盟等

二、Haproxy应用分析

  • LVS在企业应用中抗负载能力很强,但存在不足
    • LVS不支持正则处理,不能实现动静分离
    • 对于大型网站,LVS的实施配置复杂,维护成本相对较高
  • Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理的软件
    • 适用于负载打的Web站点
    • 运行在硬件上可支持以万计的并发连接的连接请求

实验报告

资源列表

主机操作系统IP配置
haproxyCentOS7192.168.72.1312C4G
web01CentOS7192.168.72.1322C4G
web02CentOS7192.168.72.1332C4G

基础环境

  • 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  • 关闭内核安全机制
setenforce 0
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
  • 修改主机名
hostnamectl set-hostname haproxy
hostnamectl set-hostname web01
hostnamectl set-hostname web02
  • 修改源
# 阿里
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 网易
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 华为
curl -o /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-anon.repo

一、编译安装Nginx

安装支持软件

yum -y install pcre-devel zlib-devel gcc++ gcc

创建运行用户、组

useradd -M -s /sbin/nologin nginx
# 不创建用户的主目录
# 指定用户的登录shell

二、源码编译及安装

1、解包

tar zxf nginx-1.12.0.tar.gz -C /usr/src/
cd /usr/src/nginx-1.12.0/

2、配置编译安装

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
# --prefix:指定将 httpd 服务程序安装到哪个目录下,如/usr/local/httpd
# --user=nginx:这个选项指定了运行 Nginx 进程的用户
# --group=nginx:这个选项指定了运行 Nginx 进程的用户组
# --with-http_stub_status_module:这个选项启用了 Nginx 的 HTTP stub_status 模块

make && make install

3、优化执行路径

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
ls -l /usr/local/sbin/nginx

三、Nginx 的运行控制

1、检查配置文件

[root@nginx ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

2、启动、停止 Nginx

[root@nginx nginx-1.12.0]# ls /usr/local/nginx/
conf  html  logs  sbin
[root@nginx nginx-1.12.0]# /usr/local/nginx/sbin/nginx         # 启动 Nginx 服务器
[root@nginx nginx-1.12.0]# ss -nlpt | grep 80
LISTEN     0      128          *:80                       *:*                   users:(("nginx",pid=12266,fd=6),("nginx",pid=12265,fd=6))
# 启动 Nginx 服务器之后打开浏览器访问 192.168.72.154
[root@nginx nginx-1.12.0]# /usr/local/nginx/sbin/nginx -s stop        # 停止 Nginx 服务器
[root@nginx nginx-1.12.0]# ss -nlpt | grep 80

四、编译安装Haproxy

1、安装gcc

# 安装gcc
yum -y install pcre-devel bzip2-devel gcc-c++

2、解包

tar xf haproxy-1.5.19.tar.gz
cd haproxy-1.5.19

3、源码编译安装

make TARGET=linux2628
make install
[root@haproxy haproxy-1.5.19]# mkdir /etc/haproxy
[root@haproxy haproxy-1.5.19]# vi /etc/haproxy/haproxy.cfg
global
        log 127.0.0.1   local3
        log 127.0.0.1   local1 notice
        #log loghost    local0 info
        maxconn 4096
        #chroot /usr/share/haproxy
        uid 99
        gid 99
        daemon
        #debug
        #quiet

defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        retries 3
        redispatch
        maxconn 2000
        contimeout      5000   # 这个已经弃用新版本使用timeout connect
        clitimeout      50000  # 这个已经弃用新版本使用timeout client
        srvtimeout      50000  # 这个已经弃用新版本使用timeout server

listen  web 0.0.0.0:80
        option httpchk GET /index.html
        balance roundrobin
        server  web01 192.168.72.132:80 check inter 2000 fall 5
        server  web02 192.168.72.133:80 check inter 2000 fall 5

创建软连接

ln -s /usr/local/sbin/haproxy /usr/sbin/
ls -l /usr/local/sbin/haproxy
[root@haproxy haproxy-1.5.19]# cd
[root@haproxy ~]# ls
anaconda-ks.cfg  haproxy-1.5.19  haproxy-1.5.19.tar.gz
[root@haproxy ~]# cp haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
[root@haproxy ~]# ls -l /etc/in
init.d/  inittab  inputrc  
[root@haproxy ~]# ls -l /etc/init.d/haproxy 
-rw-r--r-- 1 root root 2553 812 09:44 /etc/init.d/haproxy
chmod +x /etc/init.d/haproxy 
chkconfig --add /etc/init.d/haproxy 
systemctl start haproxy
[root@haproxy ~]# ss -nlpt | grep 80
LISTEN     0      128          *:80                       *:*                   users:(("haproxy",pid=97460,fd=4))

测试

[root@haproxy ~]# curl 192.168.72.131
Web01
[root@haproxy ~]# curl 192.168.72.131
Web02
[root@haproxy ~]# curl 192.168.72.131
Web01
[root@haproxy ~]# curl 192.168.72.131
Web02
[root@haproxy ~]# # 开启 UDP 日志协议转发
sed -i 's/#$ModLoad imudp/$ModLoad imudp/g' /etc/rsyslog.conf
sed -i 's/#$UDPServerRun 514/$UDPServerRun 514/g' /etc/rsyslog.conf

[root@haproxy ~]# vi /etc/rsyslog.conf 
# 在 73 行    local7.*                                                /var/log/boot.log    下面添加

local3.*                                                /var/log/haproxy.log

# 重启服务
systemctl restart rsyslog
systemctl restart haproxy
# 查看日志
[root@haproxy ~]# ls /var/log/haproxy.log 
/var/log/haproxy.log
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值