haproxy生产环境的一个完整配置

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
日志服务 SLS,月写入数据量 50GB 1个月
简介:

注:mode一般写在backend段,也可以写在defaults,forntend段

注:maxconn写在defaluts或forntend段表示前端的最大连接,写在backend表示后端server的最大连接

global

    chroot      /var/lib/haproxy

    pidfile     /var/run/haproxy.pid

    user        haproxy

    group       haproxy

    daemon

    stats socket /var/lib/haproxy/stats

defaults

    mode                    http

    log                     global

    option                  httplog

    option http-server-close

    option http-pretend-keepalive

    option forwardfor       except 127.0.0.0/8

    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                 655350

listen stats

    bind *:1080

    stats          enable

    stats          hide-version

    stats          realm haproxy\ stats

    stats          auth test:test

    stats          admin if TRUE

    stats          uri /jiankong

frontend mysql

    bind      192.168.10.80:3306

    default_backend mysql_server

    

    #自定义日志格式

    capture request header Host len 64

    capture request header User-Agent len 128

    capture request header X-Forwarded-For len 100

    capture request header Referer len 200

    capture response header Server len 40

    capture response header Server-ID len 40

    log-format %ci:%cp\ %si:%sp\ %B\ %U\ %ST\ %r\ %b\ %f\ %bi\ %hrl\ %hsl\

      

frontend tupian 

    bind      192.168.10.85:80

    default_backend tupian

frontend web

    bind     192.168.10.86:80

    use_backend     tomcat_web

    log             127.0.0.1 local2

    

    #自定义日志格式

    capture request header Host len 64

    capture request header User-Agent len 128

    capture request header X-Forwarded-For len 100

    capture request header Referer len 200

    capture response header Server len 40

    capture response header Server-ID len 40

    log-format %ci:%cp\ %si:%sp\ %B\ %U\ %ST\ %r\ %b\ %f\ %bi\ %hrl\ %hsl\

frontend erp

    bind     192.168.10.87:80

    use_backend     tomcat_erp

    log             127.0.0.1 local3

frontend interface

    bind     192.168.10.88:80

    use_backend     tomcat_interface

    log             127.0.0.1 local4

frontend wap

    bind     192.168.10.89:80

    use_backend     tomcat_wap

    log             127.0.0.1 local5

backend tupian

    mode        http

    balance     static-rr

    server      tp01 192.168.10.2:80 check

    server      tp01 192.168.10.3:80 check

    ...

backend mysql_server

    mode tcp

    fullconn 500

    balance     leastconn

    server      mysql01 192.168.10.4:3306 check

    server      mysql02 192.168.10.5:3306 check

    server      mysql03 192.168.10.6:3306 check

    ...

backend tomcat_web

    mode http

    fullconn 3000

    balance source

    server  web1 192.168.10.7:8080 check

    server  web2 192.168.10.8:8080 check

    server  web3 192.168.10.9:8080 check

    server  web4 192.168.10.10:8080 check

    ...

backend tomcat_erp

    mode http

    fullconn 3000

    balance     source

    servererp1 192.168.10.11:8080 check

    servererp2 192.168.10.12:8080 check

    ...

backend tomcat_interface

    mode http

    fullconn    3000

    balance source

    serverinterface1 192.168.10.13:8080 check

    serverinterface2 192.168.10.14:8080 check

    serverinterface3 192.168.10.15:8080 check

    serverinterface4 192.168.10.16:8080 check

    ...

backend tomcat_mobile

    mode http

    fullconn 3000

    balancesource

    servermobile1 192.168.10.17:8080 check

    servermobile2 192.168.10.18:8080 check

    servermobile3 192.168.10.19:8080 check

    servermobile4 192.168.10.20:8080 check

    ...

注:forentend有两种写法

第一种写法:定义多个frontend,基于虚拟IP进行绑定frontend,即访问不同的IP分发到不同的backend,此种写法的缺点是当需要做acl,自定义日志格式时,需要在每个frontend中都写一遍;优点是每个forntend的日志可以写到单独的文件中

第二种写法:定义1个frontend,基于acl定义规则,根据请求的域名来分发到不同的backend,此种写法的优点是当需要定义acl或者自定义日志格式时,只需要在frontend中写一遍即可;缺点是访问所有backend的日志都只能写到一个文件中,在分析日志时会给造成麻烦

以上两种写法,可以根据需求进行选择!!!

本文转自激情燃烧的岁月博客51CTO博客,原文链接http://blog.51cto.com/liuzhengwei521/1927999如需转载请自行联系原作者


weilovepan520

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
负载均衡 网络协议 前端开发
Nginx环境搭建与系统参数配置
Nginx环境搭建与系统参数配置
94 0
|
缓存 运维 安全
Nginx中的常用配置如何迁移到Istiogateway
本文提供了Nginx中常用配置的解释以及在Istiogateway中如何实现对应的功能。
348 0
|
负载均衡 网络协议 关系型数据库
MyCat-集群-keepalived 启动及 haproxy 的高可用测试 | 学习笔记
快速学习 MyCat-集群-keepalived 启动及 haproxy 的高可用测试
MyCat-集群-keepalived 启动及 haproxy 的高可用测试 | 学习笔记
|
负载均衡 算法 网络协议
Haproxy配合Nginx搭建Web集群部署实验
1、Haproxy介绍 2、Haproxy搭建 Web 群集
Haproxy配合Nginx搭建Web集群部署实验
|
负载均衡 监控 应用服务中间件
Nginx极简入门(十)配置Nginx双机热备份,实现系统高可用解决方案!
之前讲了Nginx 如何实现负载均衡,以及如何实现动静分离。但是还确少Nginx 高可用的部分。因为Nginx 处于整个系统非常重要的位置,Nginx的高可用影响到整个系统的稳定性。如果nginx服务器宕机后端web服务将无法提供服务,影响严重。所以,接下来就来介绍Nginx + keepalived 实现高可用的方案。
Nginx极简入门(十)配置Nginx双机热备份,实现系统高可用解决方案!
|
应用服务中间件 nginx
NGINX生产环境反向代理配置
#当访问www.kazihuo.com//sichuan-user-te时,跳转到http://10.1.93.61:7005/sichuan-user server { listen 80; server_name 218.
1453 0
|
Web App开发 监控 应用服务中间件
|
负载均衡 应用服务中间件 网络安全