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

注: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的日志都只能写到一个文件中,在分析日志时会给造成麻烦

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

时间: 2024-10-10 10:40:03

haproxy生产环境的一个完整配置的相关文章

spring boot--日志、开发和生产环境切换、自定义配置

Spring Boot日志常用配置: # 日志输出的地址:Spring Boot默认并没有进行文件输出,只在控制台中进行了打印 logging.file=/home/zhou # 日志级别 debug-> info -> warning -> error # 默认级别为 info # 如果设置了debug=true的时候,日志级别会自动降低为debug # ROOT代表默认全局设置 logging.level.ROOT=INFO # 可以设置指定包的输出级别,这样的话,指定的包,级别以下

Kubernetes二进制方式v1.13.2生产环境的安装与配置(HTTPS+RBAC) ?

Kubernetes二进制方式v1.13.2生产环境的安装与配置(HTTPS+RBAC) 一 背景 由于众所周知的原因,在国内无法直接访问Google的服务.二进制包由于其下载方便.灵活定制而深受广大kubernetes使用者喜爱,成为企业部署生产环境比较流行的方式之一,Kubernetes v1.13.2是目前的最新版本.安装部署过程可能比较复杂.繁琐,因此在安装过程中尽可能将操作步骤脚本话.文中涉及到的脚本已经通过本人测试. 二 环境及架构图 2.1 软件环境 OS(最小化安装版): cat

生产环境Linux二进制安装配置MySQL

生产环境Linux二进制安装配置MySQL 一.环境检查rpm -qa |grep libaio #如果没有安装libaio则需要安装.df -hmount /dev/sr0 /mnt二.安装过程1)上传安装程序通过FTP/SFTP上传安装包2)创建创用户,组,创建目录groupadd mysqluseradd -r -g mysql -s /bin/false mysqlmkdir -p /mysql/data/3306/data这里的3306是MySQL默认端口号,/mysql/data目录

linux生产环境精华优化实战配置(亲测)

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 编写人:陈飞 邮箱:[email protected] +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ CentOS系统安装之后并不能立即投入生产环境使用,往往需要先经过我们运维人员的优化才行.在此讲解几

生产环境中tomcat的配置

生产环境中要以daemon方式运行tomcat 通常在开发环境中,我们使用$CATALINA_HOME/bin/startup.sh来启动tomcat, 使用$CATALINA_HOME/bin/shutdown.sh来关闭tomcat. 而在生产环境中,我们要配置tomcat使其以daemon方式运行,这是因为: 以daemon运行不受终端影响,不会因为退出终端而停止运行 可以让tomcat以普通用户身份运行,可以让tomcat随linux启动而启动 如何将tomcat配置成守护进程 将tom

生产环境搭建ftp并配置虚拟用户

虚拟用户的特点是只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源.所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性.在VSFTP中,认证这些虚拟用户使用的是单独的口令库文件(pam_userdb),由可插入认证模块(PAM)认证. 虚拟用户并非系统上的用户,但它必须映射到系统上的某个用户,虚用户的家目录属主和属组就这系统上的这个用户.并且每个虚用户有自己的用户名和密码,每个虚用户也可以单独设定对家目录的访问权限.使用文件的

CentOS5生产环境系统安全加固配置-脚本实例二

#!/bin/bash echo "updata V1.0 by csc  2014-11-10" VER="v1.3d" VERSION="System Security configuration "${VER}", by WuHan Tianyu, 2013-07-19." echo $VERSION SET_NTP() { #set ntp echo -e "\n>>>>>  b

MySQL5.5.32生产环境大内存优化配置实例

[client] port    = 3306 socket    = /tmp/mysql.sock default-character-set = utf8 #设置客户端的字符编码 [mysqld] # generic configuration options port    = 3306 socket    = /tmp/mysql.sock #*** char set *** character-set-server = utf8 #设置服务器端的字符编码              #

一种简单的生产环境部署Node.js程序方法

最近在部署Node.js程序时,写了段简单的脚本,发觉还挺简单的,忍不住想与大家分享. 配置文件 首先,本地测试环境和生产环境的数据库连接这些配置信息是不一样的,需要将其分开为两个文件存储 到config目录下,比如: 开发环境配置文件config/development.js: module.exports = { port: 3001, mysql: { user: 'root' } }; 生产环境配置文件config/production.js: module.exports = { po