haproxy实现的web反向代理,动静分离,以及基于keepalived实现的haproxy的高可用

   haproxy于Nginx一样都是做反向代理,但是与其相比,haproxy更专注于web代理。HAProxy是单进程多请求,也支持多进程,HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。

      haproxy功能的实现全部基于配置文件,所以我们需要了解很多的配置指令,玩转指令,再结合实际情况,我们就玩转了haproxy,其实haproxy的配置也很简单,下面我们一起简单认识和了解一些haproxy的基本功能和相关知识。

        CentOS6.5自带的rpm包的版本完全够我们使用,所以我们直接yum安装        

# yum -y install haproxy

       查看haproxy的配置信息在/etc/haproxy/haproxy.cfg。大致整体可分为两个部分

   1:全局配置段

   2:代理功能的相关配置:

      在代理功能这块细分又分为四部分:

   1:defaults 默认,为代理提供默认属性

   2:frontend 前端,相当于Nginx的Server

   3:backend 后端,相当于Nginx的upstream server 可以定义多组

   4:listen 相当于一个frontend绑定一个backend 固定组合

      配置解说:  

(1)frontend  main *:5000
# frontend的名称监听端口
    acl url_static       path_beg              -i /static /images /javascript /stylesheets
#   acl acl的名称   acl的控制标准:路径从那开始。
    acl url_static       path_end              -i .jpg .gif .png .css .js
    use_backend static          if url_static
# 使用那个backend           在什么情况下使用这个后端
    default_backend             app
# 默认情况下使用那个backend    默认使用backend的名称

   

(2)backend static
# backend的名称 见名知意,这是静态服务器后端
    balance     roundrobin
#  关键字    负载均衡的调度方法
    server      static 127.0.0.1:4331 check
# 定义后端服务器 名称   ip地址   端口  执行健康检查

       haproxy简单代理的实现:

      实验环境:3台CentOS6.5的虚拟机 其中1台两个网卡172.16.20.1是内外ip.192.168.2.109是外网ip.并安装haproxy,开启路由转发功能,另外两台分别安装php ,ip分别是172.16.20.11,172.16.20.12网关指向172.16.20.1,并开启httpd服务,提供测试页面。

        配置haproxy的配置文件:    

frontend hapserver *:80
     default_backend             webserver
backend webserver
     balance    roundrobin
        server  web1    172.16.20.11:80 check
        server  web2    172.16.20.12:80 check

   这样一个简单的轮询代理就配置好了。

   下一个话题基于haproxy的动静分离:

   动静分离的思想:其实就是定义几个acl的访问控制规则,定义2组backend,当Client访问的URL匹配上我们定义的静态访问规则的时候我们就调用静态的backend,当匹配到动态的规则的时候,就调用动态的backend 或者不写直接设置成默认都可以。那么看下面的配置:

   

frontend hapserver *: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             dynamic
backend dynamic
     balance    roundrobin
        server  web1    172.16.20.11:80 check
backend static
    balance     roundrobin
        server  web2    172.16.20.12:80 check

 当你访问的路径是以static、images...等开始或者是.jpg...结尾的时候就调用后端服务器backend static,否则默认调用的是backend dynamic

 基于keepalived实现haproxy的高可用,双主配置我在博客<<基于keepalived实现Director、ipvs、Nginx的高可用以及Nginx的双主模型>>有介绍Nginx的高可用和双主模型,配置一样,大家可以参考此文档。

   haproxy的状态输出:要使用指令stats,配置信息如下

listen statspage                # 定义单独输出页面
    bind  *:8888                # 绑定端口在8008
    stats enable                # 启用页面输出机制
    stats auth admin:haproxy    # 启用用户认证及用户名和密码
    stats admin if true        

   


             

       

                 

haproxy实现的web反向代理,动静分离,以及基于keepalived实现的haproxy的高可用,布布扣,bubuko.com

时间: 2024-11-17 19:47:30

haproxy实现的web反向代理,动静分离,以及基于keepalived实现的haproxy的高可用的相关文章

使用HAproxy如何实现web站点的动静分离

HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.      HAProxy特别 适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的 运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上.    HAProxy实现了一种事件驱动,单一进程模型,此模型支持非常大的并发连接数.多进程或多线程

CentOS 6.5环境下使用HAProxy+apache实现web服务的动静分离

HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上. HAProxy实现了一种事件驱动,单一进程模型,此模型支持非常大的并发连接数.多进程或多线程模型受内存限制.系统调

ubuntu 16.04利用docker搭建java+tomcat+nginx反向代理/动静分离

ubuntu 16.04利用docker搭建java+tomcat+nginx反向代理 新建两个docker容器 docker run -it --name Tomcat-mysql -v /mnt:/mnt -p 8866:80 -p 33006:3306 ubuntu /bin/bash docker run -itd --name webserver -p 8888:80 -v /mnt/:/mnt/ ubuntu /bin/bash [email protected]:~# docker

linux+apache+nginx实现,反向代理动静分离

在我们开发的过程中,一定会遇到,负载均衡方面的问题.下面我们,做一个小例子:使用nginx+apache实现反向代理,动静分离. 这里apache.php.nginx的安装就不做赘述了,不懂的朋友可以看看我其他的文章,或者去百度搜索了解一下. 现在,我们的电脑上有apache.nginx.php,其中php为apache服务. 我们想要实现的是,当请求发送到nginx的时候,nginx会去判断是不是php请求,如果是,那么将php请求反向分发给apache服务器. 其实,我们利用nginx要实现

Nginx 反向代理 动静分离

1.实验环境:机器10.0.10.8  Nginx proxy10.0.10.12 Nginx静态10.0.10.10 Ngins动态,LNMP平台,有个Tomcat服务系统版本和内核# cat /etc/redhat-release CentOS release 6.6 (Final)# uname -r2.6.32-504.3.3.el6.x86_64 2.Nginx静态服务器的配置文件# cat /application/nginx/conf/nginx.confworker_proces

HAproxy企业应用,TCP/HTTP动静分离

HAproxy企业应用,TCP/HTTP动静分离HAProxy的是一个免费的.开源的的tcp/http反向代理工具.负载均衡器,是一个企业非常快速和可靠的安全的解决方案,提供高可用性.高并发性,负载均衡和代理对TCP和基于HTTP的应用程序.它特别适用于流量非常高的网站.它已成为事实上的标准开源负载均衡器,现在随大多数主流Linux发行版一起提供,在互联网领域应用也是非常广泛,受欢迎的第三方工具. 在企业实际应用环境中,往往会根据业务请求将相关不同请求跳转到指定的后端服务器,比如客户静态资源请求

十五.编写自动脚本部署web,反向代理,nfs服务

一.自动部署web,反向代理,加权轮询: 1.编写脚本自动部署反向代理,web,nfs. #!/bin/bash #author/dengsiyuan function nginx_check()  #配置nginx { ngx_status= 'ps aux|grep -v grep|grep -c nginx' #取运行nginx进程的进程数 if [ -f /etc/nginx/nginx.conf ];then   #判断是否存在正规文件nginx.conf以判断nginx是否安装 ec

nginx web+反向代理 的配置介绍

user  www;   #定义Nginx运行的用户和用户组 worker_processes  2;  #nginx进程数,建议设置为等于CPU总核心数. #error_log  logs/error.log;     全局错误日志定义类型 #error_log  logs/error.log  notice; #error_log  logs/error.log  info; #pid        logs/nginx.pid;    进程文件 events {  工作模式与连接数上限 w

haproxy+keepalived实现负载均衡及高可用

HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高性能性.负载均衡,以及基于TCP和HTTP的应用程序代理.相较与 Nginx,HAProxy 更专注与反向代理,因此它可以支持更多的选项,更精细的控制,更多的健康状态检测机制和负载均衡算法. HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务