高负载均衡haproxy的搭建

薄洪涛6年前Linux1424

目的:做负载均衡

步骤:做两台nginx服务器,一台haproxy转发器

首先安装nginx

1.安装相关的依赖包。
yum install gcc -c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
2.下载nginx包
wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
3、默认配置
./configure
4、编译
make&&make install

特别注意:如果你和我一样是虚拟机,需要关闭防火墙才能访问到nginx的其实页面

systemctl stop firewalld.service  
systemctl start firewalld.service

相同的方法安装两台nginx服务器;因为我是虚拟机,所以直接克隆的;

安装haproxy

1、下载

从这个网站下载https://src.fedoraproject.org/repo/pkgs/haproxy/

wget https://src.fedoraproject.org/repo/pkgs/haproxy/haproxy-1.6.3.tar.gz/3362d1e268c78155c2474cb73e7f03f9/haproxy-1.6.3.tar.gz

2、解压

tar -zxvf haproxy-1.7.5.tar.gz
cd haproxy-1.7.5

3、安装

make TARGET=linux2628 ARCH=x86_64 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy

注意

    TARGET=linux26  #内核版本,使用uname -r查看内核,如:2.6.18-371.el5,此时该参数就为linux26;

    kernel 大于2.6.28的 用:TARGET=linux2628 

    ARCH=x86_64     #系统位数

     PREFIX=/usr/local/haprpxy  #/usr/local/haprpxy为haprpxy安装路径

4、配置
安装完成后需要自己手动创建配置文件
cd /usr/local/haproxy #进入haproxy安装目录
touche haproxy.cfg #创建配置文件
vi haproxy.cfg #编辑配置文件
以下是配置文件具体内容:

5、启动

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

负载均衡示例

global
    log 127.0.0.1 local1
    maxconn 65000             #最大连接数
#    chroot /usr/local/haproxy #安装目录
#    uid haproxy                  #用户haproxy
#    gid haproxy                  #组haproxy
    daemon                    #守护进程运行
    nbproc 1                  #进程数量

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000


frontend main
        bind *:80                          #监听地址
        acl url_static       path_beg       -i /static /images /javascript /stylesheets
        acl url_static       path_end       -i .jpg .gif .png .css .js
        use_backend static     if url_static
        default_backend   my_webserver     #定义一个名为my_app前端部分。此处将对于的请求转发给后端(集群池名称)
        backend static                     #使用了静态动态分离(如果url_path匹配 .jpg .gif .png .css .js静态文件则访问此后端)
        balance roundrobin                 #负载均衡算法(#banlance roundrobin 轮询)
        server   static 127.0.0.1:80 check  #静态文件部署在本机(也可以部署在其他机器或者squid缓存服务器

backend my_webserver
        mode http
        option  forwardfor
        balance roundrobin  #这里采用的是轮询
        cookie  SERVERID
        option  httpchk HEAD /index.html
        # 下面两个地址是我的服务器的地址
        server  web01 192.168.50.107:80 cookie web01 check inter 2000 rise 3 fall 3 weight 3
        server  web02 192.168.50.59:82 cookie web02 check inter 2000 rise 3 fall 3 weight 3

我自己开了3台虚拟机,两台nginx(182.168.50.107:80,192.168.50.59:82),一台haproxy(http://192.168.50.81/)

当我访问haproxy时,会自动转发到两台nginx服务器上;当我把其中一台服务器杀死后,haproxy会自动剔除死去的服务器,哇,厉害厉害

TIM图片20190422173250.png


相关文章

haproxy如何开启日志

默认haproxy是不记录日志的,但是调试的时候需要我们去记录日志,所以说一下日志的记录方法1.编辑 /etc/rsyslog.conf,放开如下代码,记住是udp# Provides&nb...

git忽略上传配置文件

在使用git上传代码到github的时候,通常我们使用的编辑器(比如phpstorm等)会产生一些配置文件(.idea等),或者一些项目的配置信息,比如数据库信息;我们是不希望提交这些文件的;所以要用...

Linux如何删除乱码文件

Linux如何删除乱码文件

之前使用rz命令上传文件的时候,由于上传不成功,出现了乱码文件,如图这时候,我想删除这个乱码文件,通过rm命令是不可以的,因为我无法打出这个文件的名字这时候我们可以通过inode来删除此文件1. 先查...

mac免密登陆到阿里服务器

生成本地密钥ssh-keygen -t rsa   2. 拷贝 /Users/boht/.ssh/id_rsa.pub 内容到服务器的 /r...

负载均衡配置ssl证书的坑

负载均衡配置ssl证书的坑

上周的时候,公司有个域名需要配置下ssl证书,所以这个艰巨的任务落在我的头上,开始的时候,觉得没啥啊,就配个证书而已,分分钟的事儿于是开始配置了步骤如下:合并证书文件负载均衡器导入ssl证书,配置ac...

mac下使用docker来构建不同版本的php环境并安装扩展

切换到mac后,我目前php环境是php7.3 ,但是一些老项目需要7.1 甚至5.6 的环境,特别是服务器上也有这种问题,所以我决定使用docker来部署不同的项目首先安装dockerbrew&nb...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。