nginx集群

KeepAlive--高可用解决方案

感情迁移 提交于 2019-11-30 12:22:19
一:keepalive简述 一;高可用的解决方案 1)vrrp协议的实现 keepalive 2)ais:完备HA集群 RHCS(cman) heartbeat corosync 二:vrrp协议: 概念:在节点(主机)出现故障时,实现ip地址的切换。 keepalive就是基于此协议而实现高可用的。 Failover:故障切换,即某资源的主节点故障时,将资源转移至其它节点的操作; Failback:故障移回,即某资源的主节点故障后重新修改上线后,将转移至其它节点的资源重新切回的过程; 术语: 虚拟路由器:Virtual Router 对应与配置文件中/etc/keepalived中的virtual_ipaddress 生产中一个director主机上通常会有多个网卡,对外为vip1,接收用户请求,对内为vip2,将用户的请求通过vip2发送给后端提供服务的主机RS。在配置虚拟路由ip时。vip1与vip2需要配置在一个组内,实现在master主机出现故障时,vip1转向backup备用主机时,vip2也同时转向backup备用主机。不然vip2还停留在master主机上,转向后端主机的请求将会无法到达。 此块在配置文件中 虚拟路由器标识:VRID(0-255) 物理路由器: master:主设备 backup:备用设备 priority:优先级 VIP:Virtual IP

lvs

岁酱吖の 提交于 2019-11-30 12:18:38
lvs 一、负载均衡LVS基本介绍 LVS是 Linux Virtual Server 的简称,也就是Linux虚拟服务器。这是一个由章文嵩博士发起的一个开源项目,它的官方网站是 http://www.linuxvirtualserver.org 现在 LVS 已经是 Linux 内核标准的一部分。使用 LVS 可以达到的技术目标是:通过 LVS 达到的负载均衡技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器集群,它具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的性能。LVS 是一个实现负载均衡集群的开源软件项目,LVS架构从逻辑上可分为调度层、Server集群层和共享存储。 LVS: 1、抗负载能力强。抗负载能力强、性能高,能达到F5硬件的60%;对内存和cpu资源消耗比较低 2、工作在网络4层,通过vrrp协议转发(仅作分发之用),具体的流量由linux内核处理,因此没有流量的产生。 2、稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived) 3、应用范围比较广,可以对所有应用做负载均衡; 4、不支持正则处理,不能做动静分离。 5、支持负载均衡算法:rr(轮循)、wrr(带权轮循)、lc(最小连接)、wlc(权重最小连接) 6、配置 复杂,对网络依赖比较大,稳定性很高。 Ngnix: 1、工作在网络的7层之上

nginx负载均衡

六月ゝ 毕业季﹏ 提交于 2019-11-30 11:50:54
Nginx负载均衡概述 Web服务器,直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台WEB服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到我们的后端服务器集群中, 实现负载的分发。那么会大大提升系统的吞吐率、请求性能、高容灾 Nginx要实现负载均衡需要用到proxy_pass代理模块配置 Nginx负载均衡与Nginx代理不同地方在于 Nginx代理仅代理一台服务器,而Nginx负载均衡则是将客户端请求代理转发至一组upstream虚拟服务池 Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。 upstream配置 在nginx.conf > http 区域中 upstream django { server 10.0.0.10:8000; server 10.0.0.11:9000; } 在nginx.conf > http 区域 > server区域 > location配置中 添加proxy_pass location / { root html; index index.html index.htm; proxy_pass http://django; } 此时初步负载均衡已经完成,upstream默认按照轮训方式负载,每个请求按时间顺序逐一分配到后端节点。 upstream分配策略 weight 权重

Nginx+Tomcat搭建集群环境

痴心易碎 提交于 2019-11-30 10:12:09
Nginx+Tomcat搭建集群环境 ZeroOne01 关注 0 人评论 33534人阅读 2018-05-05 14:15:39 集群概述与架构介绍 Tomcat集群能带来什么: 提高服务的性能,例如计算处理能力、并发能力等,以及实现服务的高可用性 提供项目架构的横向扩展能力,增加集群中的机器就能提高集群的性能 Tomcat集群实现方式: Tomcat集群的实现方式有多种,最简单的就是通过Nginx负载进行请求转发来实现 Tomcat单机架构图: 可能看了上面的Tomcat单机的架构图后,会 ”想当然“ 的觉得Tomcat集群架构是这样子的: 这种 ”想当然“ 的Tomcat集群会带来什么问题: Session登录信息存储及读取的问题 服务器定时任务并发的问题 ...... 所以架构的演进并不是 ”想当然“ 的那么简单,当我们的架构随着业务的需求进行演进时,就可能会发生代码上的改动,以及其他各方面配置及机器的改动,并不是单纯的增加Tomcat机器就行了。因为架构的演进都不是一蹴而就的,编程是一个遇见问题解决问题的过程,所以我们不可能一下子就设计出一个完美的架构,而且也不存在完美的架构,只有合适的架构。 常见的Tomcat集群解决方案: 采用 nginx 中的 ip hash policy 来保持某个ip始终连接在某一个机器上 优点:可以不改变现有的技术架构,直接实现横向扩展

负载均衡

别说谁变了你拦得住时间么 提交于 2019-11-30 06:31:41
1.什么是代理? 代为办理 --> 代理 kexue 2.Nginx正向代理、反向代理? 正向代理: --> 上网 | 路由器替代 | kexue上网 反向代理: 正向与反向代理的区别 区别在于形式上服务的 "对象" 不一样 正向代理代理的对象是客户端,为客户端服务 反向代理代理的对象是服务端,为服务端服务 3.Nginx代理支持哪些协议、常用的是哪些? 反向代理模式 Nginx反向代理模块 http、websocket、https ngx_http_proxy_module fastcgi ngx_http_fastcgi_module uwsgi ngx_http_uwsgi_module grpc ngx_http_v2_module 4.Nginx反向代理语法? 5.Nginx反向代理示例? 1.如果后端监听80端口,会不会出现问题? 2.后端主机获取的客户端IP是否是真实的? 3.代理向后端请求时,走的http1.0协议? 代理配置 [root@lb01 conf.d]# cat proxy_web.oldxu.com.conf server { listen 80; server_name web.oldxu.com; location / { proxy_pass http://10.0.0.7:80; proxy_http_version 1.1; proxy

第八章 资源控制器

怎甘沉沦 提交于 2019-11-30 04:16:50
一、 什么是控制器 Kubernetes 中内建了很多 controller (控制器),这些相当于一个状态机,用来控制 Pod 的具体状态和行为 二、 控制器类型 ① ReplicationController 和 ReplicaSet ② Deployment ③ DaemonSet ④ StateFulSet ⑤ Job/CronJob ⑥ Horizontal Pod Autoscaling 1 、 ReplicationController 和 ReplicaSet ReplicationController ( RC )用来确保容器应用的副本数始终保持在用户定义的副本数,即如果有容器异常退出,会自动创建新的 Pod 来替代;而如果异常多出来的容器也会自动回收;在新版本的 Kubernetes 中建议使用 ReplicaSet 来取代 ReplicationController 。 ReplicaSet 跟 ReplicationController 没有本质的不同,只是名字不一样,并且 ReplicaSet 支持集合式的 selector (标签 ) ; 2 、 Deployment Deployment 为 Pod 和 ReplicaSet 提供了一个声明式定义 (declarative) 方法,用来替代以前的 ReplicationController

Nginx总结

徘徊边缘 提交于 2019-11-30 04:13:02
Nginx nginx是一个轻量级,支持http协议的反响代理服务器。 http 协议 : nginx可以通过浏览器,ajax,插件等支持http协议的客户端访问到nginx。 反向代理 : 代理:代理的是后端的服务器(tomcat)。 反向:代理控制的访问逻辑集中在后端发送到tomcat服务器的步骤。 在互联网框架中的作用 负载均衡 : 负载:高并发的访问压力负重,载重。 均衡:平均分配,后端服务器(后端服务器集群)。 单机的nginx在cpu性能足够的情况下,5万-7万的并发引入前段网络搭建的nginx集群,配合ip入口服务器,dns服务器的配置,实现网络入口的扩大。 负载均衡逻辑: 物理逻辑:平均分配所有访问请求。 逻辑均衡:根据服务器的性能均衡,有占比的访问。 动静分离 : 静态资源img,css,js,html等可以放到nginx中被客户端访问,后端服务器专心处理动态数据,nginx专心处理静态文件数据--动静分离。 配置文件编写 : server{ listen 80; server_name www.os.com ; location /{ proxy_pass http://127.0.0.1:8090/ ; } } 访问逻辑的步骤 : 浏览器发送请求 http://www.os.com/user/query/point?userId=1

haproxy+nginx

一曲冷凌霜 提交于 2019-11-30 04:12:20
Haproxy搭建web群集 常见的Web集群调度器 目前常见的Web集群调度器分为软件和硬件,软件通常使用开源的LVS,Haproxy,Nginx,硬件一般使用比较多的是F5,也有很多人使用国内的一些 产品,如梭子,绿盟等 Haproxy应用分析 LVS在企业应用中负载能力很强,但存在不足 LVS不支持正则处理,不能实现动静分离 对于大型网站,LVS的实施配置复杂,维护成本相对较高 Haproxy是一款可提供高可用性,负载均衡,及基于TCP和HTTP应用的代理软件 特别适用于负载特别大的Web站点 运行在当前的硬件上可支持数以万计的并发连接连接请求 Haproxy的三种算法 RR (Round Robin) RR算法是最简单最常用的一种算法,轮询调度 举例理解 有三个节点A,B,C第一个用户访问会被指派到节点A,第二个用户访问会被指派到节点B,第三个用户访问会被指派到节点 第四个用户访问继续指派到节点A,轮询分配访问请求实现负载均衡 LC (Least Connections ) LC算法即最小连接算法,根据后端的节点连接数大小动态分配请求 举例理解 有三个节点A,B,C,各节点的连接数A:4,B:5,C:6,此时如果有第一个用户连接请求,会被指派到A上,连接数为A:5,B:5,C:6 第二个用户请求会继续分配到A上,连接数变为A:6,B:5,C:6,再有新的请求会分配到B

从零开始入门 K8s| 阿里技术专家详解 K8s 核心概念

杀马特。学长 韩版系。学妹 提交于 2019-11-30 03:59:17
作者| 阿里巴巴资深技术专家、CNCF 9个 TCO 之一 李响 一、什么是 Kubernetes Kubernetes,从官方网站上可以看到,它是一个工业级的容器编排平台。Kubernetes 这个单词是希腊语,它的中文翻译是“舵手”或者“飞行员”。在一些常见的资料中也会看到“ks”这个词,也就是“K8s”,它是通过将 8 个字母“ubernete ”替换为“8”而导致的一个缩写。 Kubernetes 为什么要用“舵手”来命名呢?大家可以看一下这张图: 这是一艘载着一堆集装箱的轮船,轮船在大海上运着集装箱奔波,把集装箱送到它们该去的地方。我们之前其实介绍过一个概念叫做 container,container 这个英文单词也有另外的一个意思就是“集装箱”。Kubernetes 也就借着这个寓意,希望成为运送集装箱的一个轮船,来帮助我们管理这些集装箱,也就是管理这些容器。 这个就是为什么会选用 Kubernetes 这个词来代表这个项目的原因。更具体一点地来说:Kubernetes 是一个自动化的容器编排平台,它负责应用的部署、应用的弹性以及应用的管理,这些都是基于容器的。 二、Kubernetes 有如下几个核心的功能: 服务的发现与负载的均衡; 容器的自动装箱,我们也会把它叫做 scheduling,就是“调度”,把一个容器放到一个集群的某一个机器上,Kubernetes

干货|Kubernetes集群部署
Nginx-ingress Controller

可紊 提交于 2019-11-30 03:55:59
Kubernetes提供了两种内建的云端负载均衡机制用于发布公共应用,一种是工作于传输层的Service资源,它实现的是TCP负载均衡器;另一种是Ingress资源,它实现的是HTTP(S)负载均衡器。 今天我们来重点讨论Ingress资源。HTTP(S)负载均衡器是应用层负载均衡机制的一种,支持根据环境做出更好的调度决策。与传输层调度器相比,它提供了可自定义URL映射和TLS等功能,并支持多种健康状态检查机制。 Ingress是Kubernetes API的标准资源类型之一,它其实就是一组基于DNS名称或URL路径把请求转发至指定的Service资源的规则,用于将集群外部的请求流量转发至集群内部完成服务发布。然而,Ingress资源自身并不能进行“流量穿透”,它仅是一组路由规则的集合,这些规则要想真正发挥作用还需要其他功能的辅助,如监听某套接字,然后根据这些规则的匹配机制路由请求流量。这种能够为Ingress资源监听套接字并转发流量的组件称为Ingress Controller。 一、部署Helm Helm是一个包管理工具, 把Kubernetes资源(比如deployments、services或 ingress等) 打包到一个chart中,方便将其chart保存到chart仓库用来存储和分享, Helm支持发布应用配置的版本管理, 使发布可配置,