工作记录手册手把手教你搭建客户端负载均衡心跳检测nginx+keepalive+lvs集群

目录

                     1. nginx与服务器集群简单介绍

                     2. nginx+keepalive+lvs集群搭建

 


(工作记录,实用方便,小白可上手,看了这篇,别告诉我你还不会搭建nginx集群~~~~~~~)

1. nginx与服务器集群简单介绍

Nginx与服务器集群
一:集群
1.什么是集群

	集 合在一起 放在一起
	群 一堆 很多
	服务器架构集群:多台服务器组成的响应大并发,高数据量访问的架构体系。
	分布式服务器架构:
	特点:
		1)成本高
		2)能够降低单台服务器的压力,使用流量平均分配到多台服务器
		3)使网站服务架构更加安全稳定
	服务器概念:提供某种或多种服务(功能)的机器(计算机)
		1)硬件 性能比较好的电脑主机
		2)软件 实现各种服务支持特定的协议的软件 

1.1 web服务软件
提供http https协议的服务器,网站网页访问的功能

		apache 老牌的服务器软件 功能多并且稳定 支持多种配置 lamp
		nginx 俄罗斯人开发  安装简单小巧 并发量高 web服务器 代理服务器 邮箱服务器 lnmp
		国内taobao定制版(tengine)
		IIS 微软公司 ASP脚本使用 可以通过fast-cgi(网络接口服务)的方式使用php
		lighttpd 德国开发软件 小巧 提供web服务支持

1.2 数据库

		关系型数据库(RDBMS)
		mysql mysql ab =》sun(java) =》 oracle
		mariadb mysql的一个分支
		postgresql 加州伯克利大学 学院派
		oracle 大型商业数据库
		sql server 微软数据库
		DB2 IBM
		sqllite3 手机端(ios和安卓)使用
		非关系型数据库
		memcached
		redis
		mongodb

1.3 负载均衡

		负载均衡服务器,分发请求到不同的服务器。使流量平均分配。
		服务器死机,称为宕机。
		硬件级别 F5 性价好 价格高
		软件级别 性价比高
		lvs linux下分发软件
		nginx upstream 功能分发

1.4 资源服务器

		资源服务器存储静态资源,css,js,图片,视频。一般此服务器会有硬盘(ssd固态)读写快速,带宽更大。

1.5反向代理(外网访问内网)

		反向代理服务器具有代理请求到对应的服务器的功能,也具有缓存的功能。
		代理服务器:
			比如a需要访问c,但是a不能直接访问c
			1)b可以访问c,a可以访问b
			2)a告诉b,帮忙访问c,把c的数据返回a
		squid
		varnish
		nginx

1.6 高可用

		高可用服务器,用来监控负载均衡服务器,如果一旦负载均衡宕机,会接替负载均衡服务器的工作,
		继续进行网络的分发工作。可以认为是负载均衡的备用服务器。
		heartbit 心脏敲击
		keeplive 保持活跃

1.7 缓存软件

		memcached
		redis

1.8 cdn内容分发

		访问网站进行提速

二:Nginx服务器
1.nginx概述

	提点:占用内存少,并发能力强

2.nginx特点

	1)热部署: nginx在修改配置文件之后,不需要重启。
	2)可以高并发连接:相同配置的服务器, nginx比apache能接受的连接多很多。
	3)f的内存消耗:相同的服务器, nginx比apache低的消耗 
	4)处理响应请求很快: nginx处理静态文件的时候,响应速度很快。
	5)具有很高的可靠性

3.apache与nginx服务器区别
1) nginx和apache的软件底层架构不一样。

		1: Nginx的并发性要比apache好很多;
		2: nginx属于轻量级服务器软件, apache属于重量级软件;
		3: nginx在处理静态页的效率要比apache好很多, apache在处理动态页面上的效率要比nginx高
		4: apache在安全性要比nginx要好。
		因此有一种不常用的组合: Inamp. lnmpa

2)运行模式不同的。

		1: apache运行PHP是通过加载php5模块运行。由于是apache去加载 php5模块,所以每次修改了php.ini配置文件需要重启apache.
		2: nginx运行php是通过网络连接php-fpm(fastCGl)方式运行。php-fpm是一个独立的软件(默认端口: 9000) 。因此在nginx下修改了php.ini配置文件需要重启php-fpm.

 

废话少说,下面开干!  准备好你的虚拟机,run起来!

 

2. nginx+keepalive+lvs集群搭建

  • 机器准备

 模拟集群准备五台虚拟机,可以四台(去掉web3)

LVS-Master          192.168.100.2        主LVS

LVS-BACKUP      192.168.100.3        备LVS

WEB1         192.168.100.11        nginx1

WEB2         192.168.100.12        nginx2

WEB3            192.168.100.13          nginx3<br>vip  

虚拟ip                     192.168.100.1   

  注:在ip尾号为2,3的两台主机上面安装LVS和keepalive,分别去配置keepalive(配置成一主一从)。 在11,12,13上面分别安装、配置nginx

   

 

  • 安装配置Keepalive

  

yum install -y zlib zlib-devel gcc gcc-c++ openssl openssl-devel openssh

 

yum install keepalive* -y //如果yum里面没有请编译安装一下

 

cp /etc/keepalived/keepalived.conf /etc/keepalived/bck_keepalived.conf  //先做个备份,防止操作错误

 

[Root@ddd]:#  vi keepalived.conf     

 (这个是keepalived的从配置)配置文件如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

! Configuration File for keepalived

 

global_defs {

   #notification_email {

   #  acassen@firewall.loc

   #  failover@firewall.loc

   #  sysadmin@firewall.loc

   #}

   #notification_email_from Alexandre.Cassen@firewall.loc

   #smtp_server 192.168.200.1

   #smtp_connect_timeout 30

   router_id LVS_DEVEL

}

 

vrrp_instance VI_1 {

    #141节点设置为MASTER,142或者还有其他的节点设置为BACKUP

    #还记得我们前面文章讲到的无抢占设置吗?这里也可以用哦。MASTER表示主配置,BACKUP表示从配置

    state BACKUP

    #网络适配器名称(eth0这里跟网卡名相同

    interface eth0

    virtual_router_id 51

    #所有的SLAVE节点的优先级都要比这个设置值低priority 要比主配置的priority

    priority 120

    advert_int 1

    #真实ip,主LVS和备份LVS要改成相应的lvs节点真实ip从配置的节点主机IP为3

    mcast_src_ip=192.168.100.3

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    #虚拟/浮动IP配置虚拟ip,主从两个配置这里要一致

    virtual_ipaddress {

        192.168.100.1

    }

}

 

virtual_server 192.168.100.1 80 {

    #健康时间检查,单位秒

    delay_loop 6

    #负载均衡调度算法wlc|rr,和您将使用的LVS的调度算法保持原则一致

    lb_algo rr

    #负载均衡转发规则 DR NAT TUN。和您将启动的LVS的工作模式设置一致

    lb_kind DR

    #虚拟地址的子网掩码(必须是255.255.255.0,nginx所在主机是255.255.255.255)

    nat_mask 255.255.255.0

    #会话保持时间,因为我们经常使用的是无状态的集群架构,所以这个设置可有可无

    #persistence_timeout 50

    #转发协议,当然是TCP

    protocol TCP

 

    #真实的下层Nginx节点的健康监测端口号为80

    real_server 192.168.100.11 80 {

        #节点权重

        weight 10

        #设置检查方式,可以设置HTTP_GET | SSL_GET

        HTTP_GET {

            url {

              path /

              digest ff20ad2481f97b1754ef3e12ecd3a9cc

            }

            #超时时间,秒。如果在这个时间内没有返回,则说明一次监测失败

            connect_timeout 3

            #设置多少次监测失败,就认为这个真实节点死掉了

            nb_get_retry 3

            #重试间隔

            delay_before_retry 3

        }

    }

 

    real_server 192.168.100.12 80 {

        weight 10

        HTTP_GET {

            url {

              path /

              digest 640205b7b0fc66c1ea91c463fac6334d

            }

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

 

    real_server 192.168.100.13 80 {

    weight 10

    HTTP_GET {

        url {

          path /

          digest 640205b7b0fc66c1ea91c463fac6334d

        }

        connect_timeout 3

        nb_get_retry 3

        delay_before_retry 3

    }

}

 

}

/etc/init.d/keepalived restart  //启动服务    

启动后可以在/var/log/messages 看看有没有启动报错

 

 

 

三、LVS安装配置

先列出了lvs管理工具的一些参数,供下面命令参考。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

-A –add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器。

-E –edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。

-D –delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。

-C –clear 清除内核虚拟服务器表中的所有记录。

-R –restore 恢复虚拟服务器规则

-S –save 保存虚拟服务器规则,输出为-R 选项可读的格式

-a –add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器记录。也就是在一个虚拟服务器中增加一台新的真实服务器

-e –edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录

-d –delete-server 删除一条虚拟服务器记录中的某条真实服务器记录

-L –list 显示内核虚拟服务器表

-Z –zero 虚拟服务表计数器清零(清空当前的连接数量等)

set tcp tcpfin udp 设置连接超时值

–start-daemon 启动同步守护进程。他后面可以是master 或backup,用来说明LVS Router 是master 或是backup。在这个功能上也可以采用keepalived 的VRRP 功能。

–stop-daemon 停止同步守护进程

-t –tcp-service service-address 说明虚拟服务器提供的是tcp 的服务[vip:port] or [real-server-ip:port]

-u –udp-service service-address 说明虚拟服务器提供的是udp 的服务[vip:port] or [real-server-ip:port]

-f –fwmark-service fwmark 说明是经过iptables 标记过的服务类型。

-s –scheduler scheduler 使用的调度算法,选项:rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq, 默认的调度算法是: wlc.

-p –persistent [timeout] 持久稳固的服务。这个选项的意思是来自同一个客户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。

-M –netmask netmask persistent granularity mask

-r –real-server server-address 真实的服务器[Real-Server:port]

-g –gatewaying 指定LVS 的工作模式为直接路由模式DR模式(也是LVS默认的模式)

-i –ipip 指定LVS 的工作模式为隧道模式

-m –masquerading 指定LVS 的工作模式为NAT 模式

-w –weight weight 真实服务器的权值

–mcast-interface interface 指定组播的同步接口

–connection 显示LVS 目前的连接 如:ipvsadm -L -c

–timeout 显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L –timeout

–daemon 显示同步守护进程状态

–stats 显示统计信息

–rate 显示速率信息

–sort 对虚拟服务器和真实服务器排序输出

–numeric -n 输出IP 地址和端口的数字形式

安装lvs的管理工具:

  安装命令: yum -y install ipvsadm  //这个简单,现在linux内核里面已经大部分都内置了lvs的功能,只需要安装管理工具即可

分别在ip为2,3执行此安装命令安装ipvsadm

 

配置命令: (重启后会消失,要写成脚本)  参数意思看上方列表

1

2

3

4

5

6

ipvsadm -C

ipvsadm -At 192.168.100.1:80 -s rr     

ipvsadm -at 192.168.100.1:80 -r 192.168.100.11 -g

ipvsadm -at 192.168.100.1:80 -r 192.168.100.12 -g

ipvsadm -at 192.168.100.1:80 -r 192.168.100.13 -g

ipvsadm

分别在ip为2,3机器上执行这个配置命令

 

 

四、NGINX配置

安装命令: yum install nginx* -y

分别在ip为11,12,13机器上安装nginx

 

 

然后在ip为11,12,13机器上分别打开Nginx所在服务器的“路由”功能、关闭“ARP查询”功能###

3

4

5

6

 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

 

设置回环IP

ifconfig lo:0 192.168.100.1 broadcast 192.168.100.1 netmask 255.255.255.255 up
route add -host 192.168.100.1 dev lo:0

 

 

 

 

 

 

小结:1. nginx能够正常访问,虚拟ip(vip)要能够通过ifconfig查看到,否则是keepalive没有配置好 ;

  1.   lvs,ipvsadm命令要能看到分别的三个web服务,如果没有说明上方配置lvs时没生效
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值