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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介:

注: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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
Linux 应用服务中间件 nginx
centos 80端口被占用排查+解决
centos 80端口被占用排查+解决
1359 0
|
JSON Linux 网络安全
【全面解析】Windows 如何使用 SSH 密钥远程连接 Linux 服务器
【全面解析】Windows 如何使用 SSH 密钥远程连接 Linux 服务器
1791 2
|
XML Java 数据库连接
MyBatis深入探索:原生API与注解方式实现CRUD操作
MyBatis深入探索:原生API与注解方式实现CRUD操作
284 0
|
10月前
|
监控 数据可视化 API
HarmonyOS Next开发利器:DevEco Studio高效编码技巧 🚀
DevEco Studio是HarmonyOS Next开发的高效工具,助您提升编码效率与代码质量。核心功能包括:**代码阅读优化**(可视化标记、智能跳转、结构预览)、**规范维护**(自动化格式调整、注释管理)、**效率增强**(精准搜索、即时文档查阅)、**对象开发支持**(类结构分析、方法覆写)及**质量保障**(实时语法检测、自定义Linter规则)。掌握这些技巧,可显著提高HarmonyOS应用开发效率与代码可维护性!🚀
390 14
【Hexo】butterfly主题添加备案信息
【Hexo】butterfly主题添加备案信息
1003 0
【Hexo】butterfly主题添加备案信息
|
IDE C# 开发工具
C# | 多线程批量下载文件(创建N个线程同时批量下载文件,只需要几行代码而已)
批量下载文件时使用多线程可以有效缩短完成时间,本文将讲解如何使用C#+CodePlus扩展库快速完成多线程的文件下载。 大部分代码由IDE自动生成,需要我们自己编写的代码正好**10行**。也就是说,只需要10分钟,就可以手撸一个多线程的批量下载器。
908 0
C# | 多线程批量下载文件(创建N个线程同时批量下载文件,只需要几行代码而已)
|
JSON 小程序 JavaScript
微信小程序引入Vant UI
微信小程序引入Vant UI
|
数据可视化 前端开发 JavaScript
Echarts+JS实现数据分析可视化大屏!!附源码!!
Echarts+JS实现数据分析可视化大屏!!附源码!!
|
Cloud Native Linux Go
Ghostscript 在 Linux 和 Windows 系统的应用与问题解决
Ghostscript 在 Linux 和 Windows 系统的应用与问题解决
1435 0

热门文章

最新文章