分类目录归档:Linux

构建高可用nginx集群


案例需求

部署基于nginx分发器的高可用web集群

  • 分发器故障自动切换
  • 数据服务器自动容错
  • 任何机器宕机不中断web业务

实验拓扑

image20200221150137745.png

实验环境

角色 IP
client 192.168.0.10
master 192.168.0.40 VIP=192.168.0.150
backup 192.168.0.41 VIP=192.168.0.150
web1 192.168.0.42
web2 192.168.0.43

实验步骤

a、配置nginx集群

master&backup安装nginx和keepalived
修改nginx配置文件
[...

Read more

部署LVS高可用集群


一、lvs+keepalived高可用集群部署

案例需求

部署基于LVS DR模式的web高可用集群,实现:

  • 实现数据服务器容错
  • 实现分发器故障切换
  • 任何机器宕机不中断web业务

实验环境

六台安装Linux的虚拟机一台测试机,两台LVS分发器,一台路由器,两台web服务器,关闭selinux关闭防火墙,停止libvirtd.service服务

角色名称 接口名称 IP地址
client ens33 192.168.1.200
route ens33,ens160 192.168.1.1,192.168.2.1
lvs1 ens33 192.168.2.200,...

Read more

keepalived服务器


一、什么是高可用

通过前面课程的学习,我们知道LVS、Nginx、HaProxy可以实现很多种不同类型的分发,我们还知道,集群系统存在的作用就是为了解决单点故障的问题。

LVS、Nginx集群的单点故障问题

这个单点故障主要体现在两个方面

  • 分发器宕机怎么处理?
  • 假如负载均衡服务器挂掉了,那么所有的服务也会跟着瘫痪。
  • 一种方法是人为监控,发现主分发器宕机后,立马登录备分发器,并给它分配虚ip。
  • 另一种办法是用软件来替代人来监控,自动登录备分发器,分配虚ip。

  • 数据服务器宕机怎么处理? 分发器可以自动判断数据服务器的存活状态,不对宕机服务器要数据。

二、Keepalive...

Read more

Nginx基于请求头的分发


前面的分发方式都是基于一个集群分发的,nginx是一个基于7层的分发也就是可以实现基于主机头的分发,这种分发一般都是用于多集群环境中。

一、HTTP请求头和响应头

客户端浏览器开发者工具network工具下,获取请求的请求头信息如下所示:

Request URL: http://192.168.0.40    #请求的URL
Request method:GET  #请求的方法,GET是获取数据
Remote address:192.168.0.40:80#远程主机的地址
Status code: 200 OK #请求代码,200表示正常,如果页面无法打开会显示404,403等
Vers...

Read more

Nginx分发算法


一、分发算法介绍

如何将用户请求按照一定的规律分发给业务服务器。主要分为Nginx集群默认算法和基于请求头分发算法。

二、nginx集群默认算法

nginx的upstream 目前支持4种方式的分配

  • 轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。用于处理静态页面
  • weight 指定权重,数值大的服务器,获得的请求的数量越多,用于后端服务器性能不均的情况。用于处理静态页面
  • ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务,好处是可以解决session的问题。可以处理动态网站。...

Read more

部署LVS TUN集群


一、TUN模式集群

在NAT模式中,由于所有的请求及响应的数据包都需要经过LVS调度器,如果后端的服务器数量较大,则调度器就会成为整个集群环境的瓶颈。

而请求包的大小往往小于响应包,因为响应数据包中包含有客户需要的具体数据,所以TUN模式的思路就是将请求与响应分离,让调度器仅处理请求,让真实服务器将响应数据包直接返回给客户端。

在TUN模式中有一个IP隧道,这个IP隧道是一种数据包封装技术,可以将原始数据包封装并添加新的包头(包头内容包括新的源地址和端口,新的目标地址和端口),从而实现将一个目标为调度器VIP地址的数据包封装,通过隧道转发给后端的真实服务器,通过将客户端发往调度器的原始数...

Read more

部署LVS NAT集群


一、NAT模式集群

NAT也就是网络地址转换,其作用是通过数据报头的修改,使位于企业内部的私有IP可以访问外网,以及外部用户可以访问位于公司内部的私有IP主机,在nat模式中LVS负载均衡器需要使用两块网卡配置不同的IP地址,第一块网卡与内部的web服务器连接,第二块网卡与公网用户连接

image20200204131325307.png

工作原理

基于NAT机制实现。当用户请求到达Director(负载均衡)之后,Director(负载均衡)将请求报文的目标地址(即VIP)改成选定的RS(真实服务器)地址,同时将报文的目标端口也改成选定的RS(真实服务器)的相应端口,最后将报文请求发送到指定的RS(真实服务器)。在服务器端得到数据后,R...

Read more

部署LVS DR集群


一、DR模式集群

在TUN模式下,由于需要在LVS与真实服务器之间创建隧道连接,这样会增加服务器的负担。

与TUN模式类似,在DR模式中LVS依然只承担数据的入站请求,并且根据算法选择出合适的真实服务器,最终有后端真实服务器负责将响应数据包发送给客户端。

但是与隧道模式不同的是,DR模式中要求调度器与后端服务器必须在同一个局域网内,VIP地址也需要在调度器与后端所有的服务器间共享,因为最终的真实服务器给客户端回应数据包时需要设置源地址为VIP的地址,目标地址为为客户端的IP地址,这样客户端访问的是LVS调度器的VIP地址,回应的源地址也依然是VIP地址,客户端是感觉不到后端服务器的存在的...

Read more

部署nginx web集群


一、案例需求

使用nginx分发器构建一个web集群

二、环境准备

实验机 :四台虚拟机,一台测试机,一台分发器,两台web服务器。

网卡:vmnet4

系统:CentOS8.0

SELinux&防火墙:关闭

网段:192.168.8.0/24

角色&主机名 IP
客户端 client 192.168.8.10/24
分发器 nginx1 192.168.8.40/24
web服务器 web1 192.168.8.42/24
web服务器 web2 192.168.8.43/24

三、架构图

image20200220115749617.png

四、实验步骤

4.1、 配置web业务机

a、...

Read more

Nginx集群


一、Nginx集群组成

组成要素:

1)VIP: 给分发器的一个虚拟IP

2)分发器:nginx

3)数据服务器:web服务器

二、nginx集群原理

在Nginx集群中Nginx扮演的角色是:分发器。 任务:接受请求、分发请求、响应请求。 功能模块: 1)ngx_http_upstream_module:基于应用层(七层)分发模块

2)ngx_stream_core_module:基于传输层(四层)分发模块(1.9开始提供该功能)

nginx集群的实质

nginx 默认支持分发 他有一个自带模块 叫upstream 这就是nginx的分发模块,也就是说nginx分发是一个组合体 将什么...

Read more