nginx集群

LVS负载均衡

风格不统一 提交于 2020-02-08 05:21:09
Nginx反向代理型负载 负载均衡(load balance)集群,提供了一种廉价、有效、透明的方法,来扩展网络设备和服务器的负载、带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 单台计算机无法承受大规模的并发访问,或者数据流量。此时需要搭建负载均衡集群把流量分摊到多台节点设备上分别处理,即减少用户的等待响应的时间,又提升了用户体验; 7*24小时的服务保证,任意一个或者多个有限后端节点宕机,不能影响整个业务的运行。 为什么还要学习LVS 工作在网络模型的7层,可以针对http应用做一些分流的策略,比如针对域名、目录结构,Nginx单凭这点可利用的场合就远多于LVS了。 最新版本的Nginx也支持4层TCP负载,曾经这是LVS比Nginx好的地方。 Nginx对网路稳定性的依赖非常小,理论上能ping通就能进行负载均衡,这个也是它的优势之一,相反LVS对网络稳定性依赖比较大。 Nginx的安装配置比较简单,测试起来比较方便,它基本能把错误用日志打印出来。LVS的配置、测试就要花比较长的时间了,LVS对网络依赖比较大。 懵逼了,Nginx这么好用,为什么还要用LVS。 简单一句话,当并发量超过Nginx上线,就可以使用LVS了。 日1000-2000W PV 或者并发请求10000一下都可以考虑用Nginx。 大型门户网站,点上网站需要用到LVS。

Kubernetes学习(四)

谁说胖子不能爱 提交于 2020-02-07 22:40:26
四 资源控制器 一、 什么是控制器 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

Kubernetes(十九)Deployment

≯℡__Kan透↙ 提交于 2020-02-04 13:55:07
官网链接 https://kubernetes.io/zh/docs/concepts/workloads/controllers/deployment/ kubernetes提供的控制器列表 ReplicaSet 确保任何时间都有指定的数量Pod副本在运行(Deployment已经包含该功能)。 ReplicationController 确保任何时候都有特定的Pod副本处于运行状态(Deployment已经包含该功能)。 Deployment 是kubernetes最常用的控制器,主要是用于部署无状态应用;我们平时开发的web、webapi、微服务都是无状态应用; StatefulSet 主要是用于部署有状态应用;比如redis、mysql等。 DaemonSet 确保全部或某些节点上运行一个Pod副本。当有节点加入集群时,也会为他们新增一个Pod。当节点从集群中移除时候,这些Pod也会被回收。删除DaemonSet将会删除它创建的所有Pod.主要用于运行存储插件、监控插件、日志插件等。 TTL控制器 现在只支持job,主要用来限制已经完成执行的资源对象的生命周期。 Jobs-Run to Completion 主要用于三种任务类型:非并行作业、固定完成计数的并行作业、具有工作队列的并行作业。 CronJob 根据设定的时间表运行作业。 Deployment 介绍 官网链接

API网关性能比较:NGINX vs. ZUUL vs. Spring Cloud Gateway vs. Linkerd API 网关出现的原因

孤街浪徒 提交于 2020-02-04 04:11:00
API网关性能比较:NGINX vs. ZUUL vs. Spring Cloud Gateway vs. Linkerd http://www.infoq.com/cn/articles/comparing-api-gateway-performances API 网关性能比较:NGINX vs. ZUUL vs. Spring Cloud Gateway vs. Linkerd 麦克周 2018 年 4 月 15 日 话题: 语言 & 开发 架构 前几天拜读了 OpsGenie 公司(一家致力于 Dev & Ops 的公司)的资深工程师 Turgay Çelik 博士写的一篇文章(链接在文末),文中介绍了他们最初也是采用 Nginx 作为单体应用的网关,后来接触到微服务架构后开始逐渐采用了其他组件。 我对于所做的工作或者感兴趣的技术,喜欢刨根问底,所以当读一篇文章时发现没有看到我想要看到的设计思想,我就会四处搜集资料,此外这篇文章涉及了我正在捣鼓的 Spring Cloud,所以我就决定写一篇文章,争取能从设计思路上解释为什么会有这样的性能差异。 技术介绍 文中针对 Nginx、ZUUL、Spring Cloud、Linkerd 等技术进行了对比(其实还有 Envoy 和 UnderTow 也是属于可选的 API 网关,本文不予涉及),那我就分别进行介绍,当然,首先得介绍

基于SpringBoot的Nginx反向代理以及集群共享session

空扰寡人 提交于 2020-01-29 04:32:36
Ngix ngix压缩包 提取码:4ocg 启动 解压包之后出现一个nginx-1.17.2文件夹,双击文件夹下的ngix.exe即可启动。 访问ngix(端口号为80),址栏输入localhost即可。 需要重新启动的话在nginx-1.17.2文件夹目录下运行 ngix -s reload 代理 步骤 修改配置文件 修改nginx-1.17.2/conf/nginx.conf配置文件: 添加以下修改 权重可以影响该访问服务器的次数 server是需要nginx代理的服务地址 nginx访问的默认页面是在html文件夹下的index.html页面 保存修改之后重启nignx。 测试 开启两个相同的登录服务,端口号分别为8081和8082,将两个服务开启之后,服务中的地址如localhost:8081/test访问时改为localhost/test(nginx地址/服务名),此时nginx起到一个代理和负载均衡的作用,根据权重来依次访问代理的地址。 注: 此时如果访问出现404,将进程中的nginx全部结束,再重新启动nginx。 集群共享session 此时开启两个相同的登录服务,端口号分别为8081和8082,服务需要登录信息才能访问其他功能。共享sesison可以使在其中一个服务中登录以后,将登录信息存储在session当中,当访问另一个服务时

LVS、Nginx 及 HAProxy 工作原理

点点圈 提交于 2020-01-28 08:05:38
当前大多数的互联网系统都使用了服务器集群技术,集群是将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是 Web 应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等。 在实际应用中,在 Web 服务器集群之前总会有一台负载均衡服务器,负载均衡设备的任务就是作为 Web 服务器流量的入口,挑选最合适的一台 Web 服务器,将客户端的请求转发给它处理,实现客户端到真实服务端的透明转发。 最近几年很火的「云计算」以及分布式架构,本质上也是将后端服务器作为计算资源、存储资源,由某台管理服务器封装成一个服务对外提供,客户端不需要关心真正提供服务的是哪台机器,在它看来,就好像它面对的是一台拥有近乎无限能力的服务器,而本质上,真正提供服务的,是后端的集群。 LVS、Nginx、HAProxy 是目前使用最广泛的三种软件负载均衡软件。 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术。具体的应用需求还得具体分析,如果是中小型的 Web 应用,比如日 PV 小于1000万,用 Nginx 就完全可以了;如果机器不少,可以用 DNS 轮询,LVS 所耗费的机器还是比较多的;大型网站或重要的服务,且服务器比较多时,可以考虑用 LVS。 目前关于网站架构一般比较合理流行的架构方案: Web 前端采用 Nginx/HAProxy

nginx基本功能和工作原理

允我心安 提交于 2020-01-27 13:18:40
nginx能做什么 反向代理 正向代理 负载均衡 HTTP服务器(包含动静分离) 反向代理和正向代理 正向代理。简单的说,我是一个用户,我无法直接访问一个网站,但是我能访问一个代理服务器,这个代理服务器能访问那个我不能访问的网站,于是我先连上代理服务器,告诉它我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录。结论就是,正向代理,是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。 反向代理。例如我要访问 localhost:8080/views/test1 这个页面,但view对应的服务器上并没有test1这个资源,它是从另一台服务器上调用的资源。这样view对应的那个服务器就使用了反向代理。即用户只需要把请求发给特定的反向代理服务器,具体请求是谁处理的用户不需要知道(其实也不知道),由代理服务器统一处理。结论就是 反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理 的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器

了解Nginx

孤街浪徒 提交于 2020-01-26 23:15:58
Nginx 的产生 Nginx 同 Apache 一样都是一种 Web 服务器。基于 REST 架构风格,以统一资源描述符(Uniform Resources Identifier)URI 或者统一资源定位符(Uniform Resources Locator)URL 作为沟通依据,通过 HTTP 协议提供各种网络服务。 然而,这些服务器在设计之初受到当时环境的局限,例如当时的用户规模,网络带宽,产品特点等局限并且各自的定位和发展都不尽相同。这也使得各个 Web 服务器有着各自鲜明的特点。 Apache 的发展时期很长,而且是毫无争议的世界第一大服务器。它有着很多优点:稳定、开源、跨平台等等。 它出现的时间太长了,它兴起的年代,互联网产业远远比不上现在。所以它被设计为一个重量级的。 它不支持高并发的服务器。在 Apache 上运行数以万计的并发访问,会导致服务器消耗大量内存。 操作系统对其进行进程或线程间的切换也消耗了大量的 CPU 资源,导致 HTTP 请求的平均响应速度降低。 这些都决定了 Apache 不可能成为高性能 Web 服务器,轻量级高并发服务器 Nginx 就应运而生了。 俄罗斯的工程师 Igor Sysoev,他在为 Rambler Media 工作期间,使用 C 语言开发了 Nginx。 Nginx 作为 Web 服务器一直为 Rambler Media

Nginx(一)初认识

瘦欲@ 提交于 2020-01-26 17:16:57
文章目录 Nginx  正/反向代理  Nginx应用场景  Nginx配置  示例演示   Nginx配置文件   静态资源服务器  Nginx请求处理流程 结束语 Nginx   对于Nginx不进行过多的介绍,只需要知道:Nginx是一个高性能的web服务器,其可以作为HTTP服务器,亦可作为反向代理服务器以及邮件服务器。   延续上面的解释,需要了解一下什么是正向代理以及反向代理。  正/反向代理    所谓的正向代理,就是客户端让一个中介来充当自己的角色,向目标服务器发送请求,而这个中介则是代理服务器,即如下图所示:    那么由于是代理服务器去向目标服务器发送请求,在代理服务器未公开的情况下,目标服务器并不知道真正的访问者是谁,提高安全性。并且,通过代理服务器还可以提前缓存请求的内容,以此来提高访问速度。    而 反向代理服务器 其实也是一个连接客户端和目标服务器的中介,只不过这个 中介是充当目标服务器的角色 ,即如下图所示:    由于这个中介是代表了服务器,那么就不会暴露实际访问的目标服务器,也就是说,可以相应地提高目标服务器的安全性。并且这个中介还可以充当一个负载均衡的服务器,即可以根据目标服务器的工作负荷情况,将请求发送到合适的服务器。   在了解完正向代理和反向代理的概念以后,再来讲讲Nginx的应用场景。  Nginx应用场景   

Nginx学习之--配置文件

不打扰是莪最后的温柔 提交于 2020-01-26 09:41:35
一、配置文件理解 # 编辑配置文件 vi /usr/local/nginx/conf/nginx.conf # 只看未注释的 # 代表并发处理的数量,值越大并发越大,只要设备支持 worker_processes 1; # nginx服务器和用户网络连接 events { # 代表 worker_processes 最大连接数 worker_connections 1024; } # 大部分修改都在这里,代理、缓存、日志等等(注释掉的我这里删除了) http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { # nginx监听端口号 listen 80; # 主机名称 server_name localhost; # 当路径包含某个值时进行的操作 location / { root html; index index.html index.htm; } # 错误页面 error_page 500 502 503 504 /50x.html; # 当路径包含某个值时进行的操作 location = /50x.html { root html; } } } 二、反向代理 # 1、安装tomcat和jdk并配置 # 2