haproxy+keepalived+nginx(源码)

  • 软件介绍

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

keepalived可提供vrrp以及health-check功能,可以只用它提供双机浮动的vip(vrrp虚拟路由功能),这样可以简单实现一个双机热备高可用功能,类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换,作
用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当
web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的
web服务器

  • 实验环境

keepalived+Haproxy  192.168.40.144

keepalived+Haproxy  192.168.40.135

vip:   192.168.40.100

web01: 192.168.40.144:80

web02: 192.168.40.135:80

  • 操作


1.安装Keepalived

[[email protected] ~]# cd /usr/local/src/;wget 
[[email protected] src]# tar zxvf keepalived-1.2.15.tar.gz 
[[email protected] keepalived-1.2.15]# ./configure --prefix=/usr/local/keepalived-1.2.15
.....
configure: error: 
  !!! OpenSSL is not properly installed on your system. !!!
  !!! Can not include OpenSSL headers files.            !!!
[[email protected] keepalived-1.2.15]# yum -y install openssl-devel  
[[email protected] keepalived-1.2.15]# ./configure --prefix=/usr/local/keepalived-1.2.15
....编译安装成功
Keepalived configuration
------------------------
Keepalived version       : 1.2.15
Compiler                 : gcc
Compiler flags           : -g -O2
Extra Lib                : -lssl -lcrypto -lcrypt 
Use IPVS Framework       : Yes
IPVS sync daemon support : Yes
IPVS use libnl           : No
fwmark socket support    : Yes
Use VRRP Framework       : Yes
Use VRRP VMAC            : Yes
SNMP support             : No
SHA1 support             : No
Use Debug flags          : No
[[email protected] keepalived-1.2.15]# make && make install
[[email protected] ~]# cp /usr/local/keepalived-1.2.15/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
[[email protected] ~]# cp /usr/local/keepalived-1.2.15/sbin/keepalived /usr/sbin/
[[email protected] ~]# cp /usr/local/keepalived-1.2.15/etc/sysconfig/keepalived /etc/sysconfig/
[[email protected] ~]# mkdir -v /etc/keepalived
mkdir: created directory `/etc/keepalived‘
[[email protected] ~]# cp /usr/local/keepalived-1.2.15/etc/keepalived/keepalived.conf /etc/keepalived/
[[email protected] ~]# chmod a+x /etc/init.d/keepalived 
[[email protected] ~]# chkconfig --add /etc/init.d/keepalived 
[[email protected] ~]# cat /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.40.144
   smtp_connect_timeout 30
   router_id HAPROXY_MASTER
}

vrrp_script chk_haproxy {                                         
        script "/usr/local/keepalived-1.2.15/check_haproxy.sh"        
        interval 2                                                 
        weight 2                                                
    }

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 101
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }

track_script {                                                     
        chk_haproxy
        }

    virtual_ipaddress {
        192.168.40.100
    }
}

2.安装Haproxy

[[email protected] src]wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.24.tar.gz
[[email protected] src]# tar zxvf haproxy-1.4.24.tar.gz
[[email protected] haproxy-1.4.24]# make TARGET=linux26 ARCH=x84_64 PREFIX=/usr/local/haproxy-1.4.24
[[email protected] haproxy-1.4.24]# make install PREFIX=/usr/local/haproxy-1.4.24
[[email protected] haproxy-1.4.24]# mkdir /etc/haproxy
[[email protected] haproxy-1.4.24]# cp examples/haproxy.cfg /etc/haproxy/
[[email protected] haproxy-1.4.24]# cp examples/haproxy.init /etc/init.d/haproxy
[[email protected] haproxy-1.4.24]# ln -svf /usr/local/haproxy-1.4.24/sbin/haproxy /usr/sbin/haproxy
`/usr/sbin/haproxy‘ -> `/usr/local/haproxy-1.4.24/sbin/haproxy‘
[[email protected] haproxy-1.4.24]# chmod a+x /etc/init.d/haproxy 
[[email protected] haproxy-1.4.24]# chkconfig --add haproxy
[[email protected] haproxy-1.4.24]# chkconfig haproxy on
[[email protected] haproxy-1.4.24]# chkconfig --list haproxy
haproxy            0:off    1:off    2:on    3:on    4:on    5:on    6:off

http://pynliu.blog.51cto.com/5027391/1619400

http://bbotte.blog.51cto.com/6205307/1606877

http://siriusz.blog.51cto.com/8150455/1368188

时间: 2024-10-31 03:43:03

haproxy+keepalived+nginx(源码)的相关文章

Centos 7 Nginx+Keepalived+Tomcat 源码安装与运用

Nginx+Keepalived+Tomcat 源码 第一部分 环境准备一:Nginx+keepalived服务器两台(调度器,双机热备)系统:Linux-CentOS7.4IP地址:192.168.80.100(lvs01)192.168.80.101(lvs02)软件需求:nginx安装包(nginx-1.13.9.tar.gz)Keepalived安装包(keepalived-1.4.2.tar.gz)二:tomcat服务器两台(服务器池)系统:Linux-CentOS7.4IP地址:19

Nginx源码安装及调优配置(转)

导读 由于Nginx本身的一些优点,轻量,开源,易用,越来越多的公司使用nginx作为自己公司的web应用服务器,本文详细介绍nginx源码安装的同时并对nginx进行优化配置. Nginx编译前的优化 [[email protected] ~]# wget http://nginx.org/download/nginx-1.10.1.tar.gz [[email protected] ~]# tar xvf nginx-1.10.1.tar.gz -C /usr/local/src/ [[em

通过nginx源码包制作rpm包

目录 目录... 1 版权声明:... 2 文档信息:... 2 一.通过nginx源码包制作rpm包... 2 1.制作前环境准备:... 3 2.创建普通用户... 3 二.编写spec规则... 3 1.在模板里添加规则... 3 2.关于保存*.spec报错的解决... 4 2.1解决办法:... 5 2.2使用rpmbuild命令生成 rpm包... 5 三.在其他主机测试rpm包... 5 1. 需要按照依赖包... 5 2. 上传并安装nginxRPM包... 5 3. 查看端口开

Nginx 源码编译安装

Nginx 源码编译安装环境 Centos7 Nginx1.8.1    下载地址:http://nginx.org/download/ 选择自己想要的版本 我这边使用1.8.1,下载地址:http://nginx.org/download/nginx-1.8.1.tar.gz 1.编译前安装环境 [[email protected]_30 ~]# yum groupinstall "Development Tools" -y                #安装开发工具包 [[ema

菜鸟nginx源码剖析 框架篇(一) 从main函数看nginx启动流程(转)

俗话说的好,牵牛要牵牛鼻子 驾车顶牛,处理复杂的东西,只要抓住重点,才能理清脉络,不至于深陷其中,不能自拔.对复杂的nginx而言,main函数就是“牛之鼻”,只要能理清main函数,就一定能理解其中的奥秘,下面我们就一起来研究一下nginx的main函数. 1.nginx的main函数解读 nginx启动显然是由main函数驱动的,main函数在在core/nginx.c文件中,其源代码解析如下,涉及到的数据结构在本节仅指出其作用,将在第二节中详细解释. nginx main函数的流程图如下:

nginx源码分析--进程间通信机制 & 同步机制

Nginx源码分析-进程间通信机制 从nginx的进程模型可以知道,master进程和worker进程需要通信,nginx中通信的方式有套接字.共享内存.信号.对于master进程,从外部接受信号,master进程主要就是监控.接受外部信号,将有必要的信号传递给worker进程,master进程大部分时间都是阻塞在sigsuspend()函数调用上.Worker进程屏蔽了所有的外部信号,那么Master进程就通过套接字和worker进程通信,worker进程修改全局变量,使得worker进程接受

菜鸟nginx源码剖析数据结构篇(六) 哈希表 ngx_hash_t(上)

Author:Echo Chen(陈斌) Email:[email protected] Blog:Blog.csdn.net/chen19870707 Date:October 31h, 2014 1.哈希表ngx_hash_t的优势和特点 哈希表是一种典型的以空间换取时间的数据结构,在没有冲突的情况下,对任意元素的插入.索引.删除的时间复杂度都是O(1).这样优秀的时间复杂度是通过将元素的key值以hash方法f映射到哈希表中的某一个位置来访问记录来实现的,即键值为key的元素必定存储在哈希

nginx源码学习(二)

上一篇文章主要介绍了nginx在win和Linux平台上的安装.本章节主要介绍nginx源码学习方法和源码结构,以及nginx启动时main方法的位置,参数信息.后面的章节主要是linux平台,你要问为何是linux,而不是win.我只能说nginx是基于linux平台开发出来的,我也习惯了linux平台开发.   上一篇文章我讲了安装,现在打开MobaXterm,连接上nginx服务器.输入whereis nginx命令查看安装目录:   是的我的安装目录在  /usr/local/nginx

菜鸟nginx源码剖析数据结构篇(九) 内存池ngx_pool_t[转]

菜鸟nginx源码剖析数据结构篇(九) 内存池ngx_pool_t Author:Echo Chen(陈斌) Email:[email protected] Blog:Blog.csdn.net/chen19870707 Date:Nov 11th, 2014 今天是一年一度的光棍节,还没有女朋友的程序猿童鞋不妨new一个出来,内存管理一直是C/C++中最棘手的部分,远不止new/delete.malloc/free这么简单.随着代码量的递增,程序结构复杂度的提高.今天我们就一起研究一下以精巧著