Haproxy安装和负载均衡

一.Haproxy简介 

 HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。

   HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

 二.安装和负载均衡

  1. 解压haproxy压缩包,安装源码编译软件,源码编译haproxy软件
tar -zxvf haproxy-1.6.13.tar.gz 
 yum install rpm-build -y
 yum install pcre-devel -y 
rpmbuild -tb haproxy-1.6.13.tar.gz

2.找到haproxy的配置文件

cd haproxy-1.6.13/examples/
cp content-sw-sample.cfg  /etc/haproxy/haproxy.cfg

3.建立haproxy用户和组。利用linux对haporxy用户的访问控制实现对haporxy服务的控制

useradd haproxy

4.修改配置文件,添加后端真实服务器和负载均衡算法

global    # 全局定义
        maxconn         10000   # 最大连接数
        stats socket    /var/run/haproxy.stat mode 600 level admin
        log             127.0.0.1 local0   # 夲机日志
        uid             500      # haproxy用户的uid
        gid             500      # haproxy用户的gid
        chroot          /var/empty
        daemon
defaults     # 默认条件
        mode            http
        log             global
        option          httplog
        option          dontlognull
        monitor-uri     /monitoruri
        maxconn         8000
        timeout client  30s

        stats uri       /admin/stats

        option prefer-last-server
        retries         2
        option redispatch
        timeout connect 5s
        timeout server  5s
# The public 'www' address in the DMZ                                                                            
frontend public
        bind            *:80 name clear
        #bind            192.168.1.10:443 ssl crt /etc/haproxy/haproxy.pem

        #use_backend     static if { hdr_beg(host) -i img }
        #use_backend     static if { path_beg /img /css   }
        default_backend  static    # 默认使用static后端服务器集群

# The static backend backend for 'Host: img', /img and /css.
backend static
        balance         roundrobin  # 负载均衡算法rr
        server          statsrv1 172.25.254.2:80 check inter 1000 # 后端服务器server2
        server          statsrv2 172.25.254.3:80 check inter 1000 # 后端服务器servr3

5.打开server1的haproxy服务和后端服务器的httpd服务

6.测试端测试负载均衡

[root@server1 ~]# yum install pcre-devel -y    
[root@server1 ~]# rpmbuild -tb haproxy-1.6.13.tar.gz
[root@server1 ~]# cd rpmbuild/
[root@server1 rpmbuild]# cd RPMS/x86_64
[root@server1 x86_64]# rpm -ivh haproxy-1.6.13-1.x86_64.rpm 
[root@server1 x86_64]# rpm -ql haproxy
[root@server1 x86_64]# cd /root/
[root@server1 ~]# cd haproxy-1.6.13/examples/
[root@server1 examples]# cp content-sw-sample.cfg  /etc/haproxy/haproxy.cfg
[root@server1 examples]# useradd haproxy
[root@server1 examples]# vim /etc/haproxy/haproxy.cfg 
[root@server1 ~]# tar -zxvf haproxy-1.6.13.tar.g
[root@server1 ~]# cd haproxy-1.6.13
[root@server1 haproxy-1.6.13]# make TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_CRYPT_H=1 USE_LIBCRYPT=1
Vim  /etc/security/limits.conf
haproxy		-		nofile	10000

配置文件中的参数一些实验:

  1. stats uri       /admin/stats (浏览器中看到的后端服务器管理和页面数据的监控访问目录,类似于http中的/var/www/html/,这个可以修改为你想要的,但是访问后端监控时写上对应的就好
  2. monitor-uri     /monitoruri (网站健康检查URL,用来检测haproxy管理的网站是否是可以用的正常返回200)
  3. stats auth admin:xuemiao (为了安全给自己的后端监控设置用户admin密码xuemiao之后登录监控页面)

基于tcp和http的应用程序代理

(一)动态页面和静态页面的分离

  1. server1的http默认发布目录编写文件正在维护,Server3安装php和php-mysql,http主目录写入

         

在server3上重启httpd服务

[root@server3 html]# /etc/init.d/httpd restart

在server1中改配置文件 这个是访问哪一个页面设置

use_backend     static if { path_end -i .php   }

测试结果是:

  • 修改haproxy的日志文件
  1. 修改日志服务的文件从而修改日志存储位置,重启生效

2.启动haproxy服务可以查看日志

(三)访问控制

1)编辑haproxy配置文件,访问时403错误

2)错误重定向,在172.25.254.1上更改http服务端口为8080,配置文件写法如下,重新reload,重启httpd服务

  • 读写分离
  1. .在server1上编写配置文件,server2动态写

2.server2和server3安装php,把脚本放在/var/www/html下面,upoad改权限为777

3.上传图片,注意格式,大小,可更改php文件描述图片大小的脚本

4).上传成功则server2下存在

如果出现上传不成功则是,脚本执行过程中出错,可能的问题,配置文件的动态,静态混淆,或者server2或server3Apache主目录下面没有upload文档

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值