负载均衡器之 Haproxy
1. 编译安装haproxy
官网: http://www.haproxy.org
1.1 下载haproxy
# wget http://www.haproxy.org/download/1.6/src/haproxy-1.6.14.tar.gz
1.2 解压haproxy
# .tar.gz
1.3 查看编译方法
# less README
下面选自README
To build haproxy, you have to choose your target OS amongst the following ones
and assign it to the TARGET variable :
- linux22 for Linux 2.2
- linux24 for Linux 2.4 and above (default)
- linux24e for Linux 2.4 with support for a working epoll (> 0.21)
- linux26 for Linux 2.6 and above
- linux2628 , .x, and above (enables splice and tproxy)
- solaris or (others untested)
- freebsd to (others untested)
- netbsd for NetBSD
- osx for Mac OS/X
- openbsd for OpenBSD 3.1 and above
- aix51 for AIX 5.1
- aix52 for AIX 5.2
- cygwin for Cygwin
- generic for any other OS or version.
- custom to manually adjust every setting
By default, the DEBUG variable is set to '-g' to enable debug symbols. It is
not wise to disable it on uncommon systems, because it's often the only way to
get a complete core when you need one. Otherwise, you can set DEBUG to '-s' to
strip the binary.
For example, I use this to build :
$
And I build it this way on OpenBSD or FreeBSD :
$ gmake TARGET=freebsd USE_PCRE= USE_OPENSSL= USE_ZLIB=
And on a classic Linux with SSL and ZLIB support (eg: Red Hat .x) :
$ USE_OPENSSL= USE_ZLIB=
And on a recent Linux >= with SSL and ZLIB support :
$ USE_OPENSSL= USE_ZLIB=
In order to build a -bit binary on an x86_64 Linux system with SSL support
without support for compression but when OpenSSL requires ZLIB anyway :
$ ADDLIB=-lz
1.4 安装:
# USE_OPENSSL= USE_ZLIB= 安装方法是根据自己内核版本来了,具体查看内核的方法: # uname -a # make install PREFIX=/usr/local/haproxy
2. haproxy最简单的配置
2.1 拷贝配置文件
# mkdir -p /usr/local/haproxy/conf/ # cp -a examples/content-sw-sample.cfg /usr/local/haproxy/conf/ # mv /usr/local/haproxy/conf/content-sw-sample.cfg /usr/local/haproxy/conf/http_haproxy.conf
配置配置文件如下
# cat http_haproxy.conf | grep -v "#"
global
maxconn
log 127.0.0.1 local0
uid
gid
chroot /usr/local/haproxy/var
daemon
frontend public
bind name clear
mode http
default_backend dynamic
timeout client 30s
backend dynamic
mode http
timeout connect 5s
timeout server 30s
timeout queue 30s
balance roundrobin
server server_01 minconn maxconn check inter
server server_02 minconn maxconn check inter
#
2.2 检查语法
# ./haproxy -f /usr/local/haproxy/conf/http_haproxy.conf -c Configuration file is valid #
2.3 测试访问
# netstat -tulnp | grep haproxy tcp /./haproxy # # curl -I http://192.168.31.243:81/ HTTP/ OK Server: nginx/ Date: Mon, Jan :: GMT Content-Type: text/html Content-Length: Last-Modified: Tue, Dec :: GMT ETag: "5c1898d6-27c" Accept-Ranges: bytes # curl -I http://192.168.31.243:80 HTTP/ OK Server: nginx/ Date: Mon, Jan :: GMT Content-Type: text/html Content-Length: Last-Modified: Tue, Dec :: GMT Connection: keep-alive ETag: "5c1898d6-27c" Accept-Ranges: bytes #
3. 出现的问题和解决的办法
3.1 haproxy 默认log不输出的问题
在haproxy配置文件中,指定了 log 输出为 local0 之后,同时也在 /etc/rsyslog.conf 配置了
local0.* /var/log/haproxy.log
发现还是不行,最后发现UDPServer未开启导致的,
# cat /etc/rsyslog.conf | grep "UDPServerRun" $UDPServerRun # UDPServerRun 514 需要打开
验证是否打开 # netstat -tulnp | grep 514 udp 0 0 0.0.0.0:514 0.0.0.0:* 2772/rsyslogd udp 0 0 :::514 :::* 2772/rsyslogd #
负载均衡器之 Haproxy的更多相关文章
- 软件级负载均衡器(LVS/HAProxy/Nginx)的特点简介和对比
本文出自 “抚琴煮酒” 博客,出处http://andrewyu.blog.51cto.com/1604432/697466 现在网站发展的趋势对网络负载均衡的使用是随着网站规模的提升根据不同的阶 ...
- Haproxy原理(1)
一.四层和七层负载均衡的区别 所谓的四层就是ISO参考模型中的第四层.四层负载均衡也称为四层交换机,它主要是通过分析IP层及TCP/UDP层的流量实现的基于IP加端口的负载均衡.常见的基于四层的负载均 ...
- 关于haproxy
高性能负载均衡软件 haproxy 一.四层和七层负载均衡的区别: 所谓的四层就是OSI参考模型中的第四层,四层负载均衡也称为四层交换机,他主要是通过分析IP层及TCP/UDP层的流量实现的基于IP加 ...
- PXC5.7(Percona XtraDB Cluster)+HAproxy+Keepalived 集群部署
Percona-XtraDB-Cluster+Haproxy 搭建集群环境 环境准备及服务器信息: 配置防火墙 firewall-cmd --add-port=3306/tcp --permanent ...
- HAProxy详解(一):HAProxy介绍【转】
一.高性能负载均衡软件HAProxy介绍: 随着互联网业务的迅猛发展,大型电商平台和门户网站对系统的可用性和可靠性要求越来越高,高可用集群.负载均衡集群成为一种热门的系统架构解决方案.在众多的负载均衡 ...
- HAProxy从零开始到掌握
转自:https://www.jianshu.com/p/c9f6d55288c0 目录: HAProxy是什么 HAProxy的核心能力和关键特性 HAProxy的安装和运行 使用HAProxy搭建 ...
- 1、代理服务器及haproxy基础
1.web站点架构 前端一台主机提供app server,当用户请求到达时,如果要存储结构化数据,就需要找一台主机做database server.当业务达到一定程度时,要把web server.存储 ...
- [转]Haproxy原理(1)
本文出处:https://www.cnblogs.com/skyflask/p/6970151.html 目录 一.四层和七层负载均衡的区别二.HAProxy与LVS的异同三.快速安装HAProxy集 ...
- Haproxy基础知识 -运维小结
开源软件负载均衡器 现在常用的三大开源软件负载均衡器分别是Nginx.LVS.Haproxy. 在之前的文章中已经对比了这三个负载均衡软件, 下面根据自己的理解和使用经验, 再简单说下这三个负载均衡软 ...
随机推荐
- react组件开发规范总结
开发react也有一段时间了,一开始的随手写,生命周期乱用,无状态组件的不熟悉.现在逐渐规范一下,从网上各个地方copy过来,整理出一份文档.可能不全,后续还得多提炼总结和完善. 一.组件内方法书写, ...
- java课程之团队开发冲刺1.2
一.总结昨天进度 1.三个任务都已经实现 2.使用时间:四个小时左右 二.遇到的困难 1.对Android原生的侧拉任务栏不了解,导致使用的时候出现了一部分问题 三.今天任务规划 1.对之前的程序重新 ...
- ES中的分词器
基本概念: 全文搜索引擎会用某种算法对要建索引的文档进行分析, 从文档中提取出若干Token(词元), 这些算法称为Tokenizer(分词器), 这些Token会被进一步处理, 比如转成小写等, 这 ...
- 域名系统DNS以及跨域问题
域名到Ip地址解析是由分布在因特网上的许多域名服务器程序共同完成的.运行域名服务器程序的机器是域名服务器 域名到ip地址的解析过程: 当一个应用进程需要把主机名解析为ip地址时,该应用就调用解析程 ...
- Docker容器镜像瘦身的三个小窍门(转)
[转自:http://dockone.io/article/8174] 在构建Docker容器时,我们应尽可能减小镜像的大小.使用共享层的镜像尺寸越小,其传输和部署速度越快. 不过在每个RUN语句都会 ...
- python-django(框架结构)
项目架构: 最外层myshop目录:项目的容器,没有实质性的作用 .idea:项目的配置信息.这个文件夹是自动生成,版本控制信息等,包括历史记录.无用 manage.py:(管理项目)一个实用的命令行 ...
- .Net代码控制PrivateBinPath和ConfigurationFile的位置
.Net的WinForm程序有的时候让人很烦的是,在执行目录下总是一大堆的DLL,配置文件,最少则是个以下,多的时候怕有四五十个吧……,自己程序中的类库,第三方的类库……加载一起让人感觉乱糟糟的,非常 ...
- jQuery的1.x版本的$(element).css()设置元素字体颜色时出现的问题(在IE8以下)
最近赶项目,自己写了个基于jQuery的弹出层插件,中间遇到一个问题,怎么也找不到解决方法,最后发现就是空格的问题...欲哭无泪啊... 在给函数传参时,因为写css代码时习惯在:后面加个空格在写样式 ...
- P2146 [NOI2015]软件包管理器
题目链接:https://www.luogu.org/problemnew/show/P2146 题目描述 Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安 ...
- node vue 项目部署问题汇总
场景:vue-router为history模式,不带项目名访问的部署,如果资源是用相对路径加载,则资源匹配路径不对 一.带项目名称访问,如部署到tomcat服务上 webpack: build/ut ...