`

nginx keepalived lvs

阅读更多

一、环境准备

一共4台虚拟机,我用的mac的parallels desktop创建的4台centos7虚拟机

master 192.168.20.104
salve 192.168.20.103
node1 192.168.20.102
node2 192.168.20.98

可以先安装一个虚拟机,然后进行克隆就行。

二、配置虚拟机

1.安装master的keepalived,参考以下脚本:

# -------------------------------------------------------- #
            ## Keepalived_intsall
# -------------------------------------------------------- #
# Keepalived installation
yum install -y gcc openssl-devel popt-devel
# error libnfnetlink headers missing
yum install -y libnfnetlink-devel
cd /root/software
[ ! -e keepalived-1.2.24.tar.gz ] &&  wget http://www.keepalived.org/software/keepalived-1.2.24.tar.gz
tar -zxvf keepalived-1.2.24.tar.gz
cd keepalived-1.2.24
./configure --prefix=/usr/local/keepalived
make && make install
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
mkdir -p /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
chmod +x /etc/init.d/keepalived
echo $? || [ $? != 0  ] || print " installation keepalived  failed" || exit 1
chkconfig --add keepalived
chkconfig --level 345 keepalived on

 以上是通过下载相应的压缩包,然后进行安装配置。

centos7这次我用的是yum安装,直接在命令行运行命令:

yum install keepalived //安装
keepalived -v //检查版本 

配置master和相应的salve的keepalived,运行命令:

vim /usr/local/keepalived/keepalived.conf //编辑配置文件
! Configuration File for keepalived

global_defs {
   notification_email {
        root@localhost
        abc@163.com                              ##设置邮件报警地址
   }
   notification_email_from zhi@zhi.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 3
   router_id LVS_DEVEL
}
vrrp_instance VI_1 {                          ##配置vrrp实例1
    state MASTER                           ##BACKUP修改为BACKUP
    interface eth0
    virtual_router_id 51
    priority 101                           ##BACKUP修改为100或更小
    advert_int 1
    garp_master_delay 5
    authentication {
        auth_type PASS
        auth_pass 1111
    }
virtual_ipaddress {
        192.168.20.10
    }
virtual_server 192.168.20.10 80 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT #负载均衡转发规则 DR NAT TUN。和您将启动的LVS的工作模式设置一致
    nat_mask 255.255.255.0
    persistence_timeout 5
    protocol TCP
    real_server 192.168.20.98 80 {
        weight 10
        HTTP_GET {
            url {
              path /
            status_code 200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
      }
    }
real_server 192.168.20.102 80 {
        weight 10
        HTTP_GET {
            url {
              path /
            status_code 200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

2.防火墙设置,运行命令:

sysemctl stop firewalld.service //关闭
sysemctl disable firewalld.service //开机禁止启动

3.安装ipvsadm,运行命令:

yum install ipvsadm //安装
ipvsadm -v //检查版本

4.(可选)安装iptables防火墙,需要配置相应的防火墙策略,运行命令:

vim /etc/sysconfig/iptables

eg:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -s 172.21.4.51 -j ACCEPT
-A INPUT -s 172.21.4.52 -j ACCEPT
-A INPUT -s 172.21.4.91 -j ACCEPT
-A INPUT -s 172.21.4.92 -j ACCEPT

 开放相应的端口。

 

5.节点安装nginx,注意设置相应的防火墙,以便nginx 80端口能够访问,参考一下脚本:

#!/bin/bash
# author: kuangl
# mail: kuangl@orient-media.com
# description: The installation of Nginx files.
# -------------------------------------------------------- #
         ## Nginx_install
# -------------------------------------------------------- #
# Nginx installation
#CURRENT_PATH=$(pwd)
for i in $(rpm -q gcc gcc-c++ kernel-devel openssl-devel zlib-devel popt-devel popt-static libnl-devel wget make |grep 'not installed' | awk '{print $2}')
do
    yum -y install $i
done
[ -d /root/software ]
[ "$?" != 0 ] && mkdir /root/software
cd /root/software
[ !  -e pcre-8.40.tar.gz ] && wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
tar -zxvf pcre-8.40.tar.gz
cd pcre-8.40
./configure
make && make install
echo $? || [ $? != 0  ] || echo  " installation pcre  failed" || exit 1
cd /root/software
[ ! -e nginx-1.11.5.tar.gz ] && wget http://nginx.org/download/nginx-1.11.5.tar.gz
tar -zxvf nginx-1.11.5.tar.gz
cd nginx-1.11.5
./configure  --prefix=/usr/local/nginx --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module  --with-http_gzip_static_module
make && make install
echo $? || [ $? != 0  ] || echo  " installation  nginx  failed" || exit 1

 6.在nginx节点上设置lvs

ipvsadm -C
ipvsadm -At 192.168.20.10:80 -s rr
ipvsadm -at 192.168.20.10:80 -r 192.168.20.98 -m
ipvsadm -at 192.168.20.10:80 -r 192.168.20.102 -m
-a指定真实服务器 -t lvs上VIP -r真实服务器ip及端口 -w权重值 -g先择DR模式 -m为NAT模式

 7.启动并验证

keepalived两种启动方式
(1)自己压缩包安装,参考该目录下的安装sh脚本,启动命令:/etc/init.d/keepalived start
(2)centos7 yum安装,配置成服务
    systemctl daemon-reload  重新加载
    systemctl enable keepalived.service  设置开机自动启动
    systemctl disable keepalived.service 取消开机自动启动
    systemctl start keepalived.service 启动
    systemctl stop keepalived.service停止
(3)查看启动状态
    systemctl status keepalived.service
nginx启动后外部无法访问
(1)检查linux防火墙
(2)查看防火墙配置
    Linux防火墙(Iptables)重启系统生效
    开启: chkconfig iptables on
    关闭: chkconfig iptables off
    
    Linux防火墙(Iptables) 即时生效,重启后失效
    开启: service iptables start
    关闭: service iptables stop
nginx相关命令:
    nginx -v //查看版本
    ps -ef|grep nginx //查看进程,有两个,主进程和子进程
    kill -9 进程号 //杀死进程
    pkill -9 nginx //强制停止
    nginx -c /usr/local/nginx/nginx.conf //启动
    nginx -s stop //快速停止或关闭
    nginx -s qiut //正常停止或关闭
    nginx -s reload //配置文件修改后重新装载

 

8.注意事项

1、输出的日志信息: /var/log/messages ,更具体的日志信息输出需要在启动keepalived时加 -d 参数。
2、在都为MASTER且priority一样的情况下,后启的节点(service vrrp start)会取代正在运行的节点变成主用的。
3、一台为MASTER且priority较高的情况下,不受次节点down/up影响,并且其本身再从down变为up时,会抢夺控制权。
4、在都为MASTER且priority一样的情况下,正在运行的主节点down(断网),次节点会自动接管,主节点再起来时不会去抢夺控制权。
#keepalived会定时执行脚本并对脚本执行的结果进行分析,动态调整vrrp_instance的优先级。
#如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加
#如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少
#其他情况,维持原本配置的优先级,即配置文件中priority对应的值。
#这里需要注意的是:
#1) 优先级“不会”不断的提高或者降低,当track的对象恢复时,又是一致的
#2) 可以编写多个检测脚本并为每个检测脚本设置不同的weight
#3) 不管提高优先级还是降低优先级,最终优先级的范围是在[1,254],不会出现优先级小于等于0或者优先级大于等于255的情况
#这样可以做到利用脚本检测业务进程的状态,并动态调整优先级从而实现主备切换。 

9、参考链接

http://blog.csdn.net/yinwenjie/article/details/47211551

http://www.linuxidc.com/Linux/2015-07/120179.htm

http://blog.csdn.net/nimasike/article/details/51867046

http://os.51cto.com/art/201103/249045.htm

https://github.com/jiji87432/nginx_sh //相关安装配置脚本

分享到:
评论

相关推荐

    Keepalived+LVS+Nginx

    ### Keepalived+LVS+Nginx 架构深度解析 #### 一、体系架构概述 在现代互联网架构中,为了提升系统的可用性和扩展性,采用Keepalived、LVS和Nginx组合构建的高可用性负载均衡体系是常见且高效的做法。此架构主要由...

    nginx+lvs+keepalived安装文档

    ### Nginx + LVS + Keepalived 安装与配置详解 #### 一、概述 本文档将详细介绍如何在 Linux 系统上部署 nginx、LVS 以及 Keepalived,构建一个高可用且负载均衡的服务集群。通过这种方式,不仅可以提高服务的稳定...

    lvs+Keepalived+nginx高可用负载均衡搭建部署方案

    lvs+Keepalived+nginx高可用负载均衡搭建部署方案

    CentOS系统安装配置Nginx+keepalived实现负载均衡

    CentOS系统安装配置Nginx+keepalived实现负载均衡 本文将详细介绍CentOS系统安装配置Nginx+keepalived实现负载均衡的步骤和配置过程。通过本文,读者将了解如何使用Nginx和keepalived来实现高可靠性的负载均衡架构...

    LVS+Keepalived高可用负载均衡集群

    随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司...我们利用LVS+Keepalived基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器。

    多种负载均衡部署文档,实操笔记 Nginx,lvs(dr,nat,fullnat),haproxy等,dpdk-lvs

    在本文中,我们将深入探讨几种常见的负载均衡器——Nginx、LVS(DR、NAT、FullNAT)以及Haproxy,并分析它们的优缺点。同时,我们还将详细讲解LVS的配置,包括Keepalived参数的解释。 **Nginx负载均衡** Nginx是一...

    nginx与keepalived和lvs高可用配置.zip

    其中包含nginx的源码安装包、安装配置文档,keepalived高可用的安装包与配置文档,和lvs的配置说明!可以根据这些配置文档与相对应的博客配置nginx的负载均衡与高可用!除了这些以外还有一个SwitchHosts工具,可以...

    第三十三章:Lvs+Keepalived+Nginx+Tomcat高可用集群1

    LVS+Keepalived+Nginx+Tomcat 高可用集群项目 本文主要讲述了如何构建一个高可用集群项目,使用 LVS、Keepalived、Nginx 和 Tomcat 实现高可用性和负载均衡。该项目的架构中,Keepalived 负责对 LVS 架构中的调度器...

    Keepalived+LVS+Nginx热双互备负载均衡

    【Keepalived+LVS+Nginx热双互备负载均衡】 在构建高可用性和负载均衡的网络架构中,Keepalived、LVS(Linux Virtual Server)和Nginx经常一起使用,以确保服务的持续性和高效性。在这个体系结构中,Keepalived主要...

    nginx+keepalived版本

    Keepalived,另一方面,是为LVS(Linux Virtual Server)设计的一个网络服务,提供了VRRP(Virtual Router Redundancy Protocol)协议的实现。在文件"keepalived-1.2.18.tar.gz"中,包含的是Keepalived的1.2.18版本...

    LVS+KeepAlived+Nginx高可用实现方案.pdf

    "LVS+KeepAlived+Nginx高可用实现方案" LVS(Linux Virtual Server)是一种虚拟服务器集群系统,旨在提供高性能、高可用的服务器解决方案。其主要特点包括可伸缩性、可靠性和可管理性。LVS通过IP负载均衡技术实现...

    L4+L7 负载均衡 Keepalived+LVS+nginx搭建nginx高可用集群

    ### L4+L7 负载均衡 Keepalived+LVS+nginx搭建nginx高可用集群 #### 一、概述 随着互联网应用的不断发展,如何高效地处理大规模并发请求成为了现代Web架构设计的重要议题之一。在众多解决方案中,构建一个高可用、...

    源码安装nginx+keepalived实现HA(高可用)

    ### 源码安装Nginx与Keepalived实现高可用集群 #### 一、概述 在本篇文章中,我们将详细介绍如何通过源码安装的方式部署Nginx与Keepalived来构建一个高可用(High Availability,简称HA)的Web服务集群。这种方式...

    高性能业务架构解决方案(LVS+Keepalived)

    ### 高性能业务架构解决方案(LVS+Keepalived) #### 概况 **1.1 应用场景** 在互联网行业中,随着业务量的增长和技术的发展,如何构建一个既能够应对高并发请求又具备高可用性的系统变得尤为重要。在众多的负载...

    nginx+keepalived.zip

    - Keepalived是为LVS(Linux Virtual Server)设计的一个网络守护进程,但同样适用于其他需要高可用性的服务,如Nginx。 - Keepalived通过VRRP(Virtual Router Redundancy Protocol)协议实现主备切换,监控...

    lvs+keepalived+nginx+tomcat+memcached实现服务负载均衡及session共享

    本文将详细探讨如何使用lvs(Linux Virtual Server)、keepalived、nginx、tomcat以及memcached来实现这一目标。 首先,lvs是Linux内核中的一个模块,它提供了四层负载均衡功能,能够将进来的网络请求分发到后端多...

    Nginx+keepalived主备负载塔建

    Nginx+keepalived主备负载塔建 本文将详细介绍 Nginx+keepalived 主备负载塔建的配置和实现过程。 标题解释 Nginx+keepalived 主备负载塔建是指使用 Nginx 和 keepalived 两个开源软件来实现主备负载均衡的架构。...

Global site tag (gtag.js) - Google Analytics