高负载均衡haproxy的搭建

薄洪涛6年前Linux1307

目的:做负载均衡

步骤:做两台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


相关文章

git忽略上传配置文件

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

PHP调用不起来Python脚本

前几天做了个自动处理文件的python脚本,目前python脚本需要手动把文件放到特定文件夹下,自动去读取处理;但是老大觉得不方便,让我写了个文件上传页面,然后调用python的脚本,导出处理后的文件...

php脚本以守护进程的方式运行

写了一个聊天室,需要手动执行php start.php start命令去启动workerman的握手程序,但是退出xshell后,进程会被杀掉,因为之前用过node的forever,感觉php应该也有...

xshell做端口映射链接数据库

xshell做端口映射链接数据库

有些时候,公司的一些线上的数据库,数据太多,不适合复制到本地然后搭建本地数据库开发,直接链接数据库又不安全所以,需要通过xshell做端口转发,通过隧道来链接数据库1、首先通过xshell登陆跳板机2...

负载均衡配置ssl证书的坑

负载均衡配置ssl证书的坑

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

Linux如何删除乱码文件

Linux如何删除乱码文件

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

发表评论    

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