nginx负载均衡配置

负载均衡之DNS域名解析

不问归期 提交于 2020-01-10 15:15:09
DNS(Domain Name System)是因特网的一项服务,它作为域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。人们在通过浏览器访问网站时只需要记住网站的域名即可,而不需要记住那些不太容易理解的IP地址。在DNS系统中有一个比较重要的的资源类型叫做主机记录也称为A记录,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。如果你有一个自己的域名,那么要想别人能访问到你的网站,你需要到特定的DNS解析服务商的服务器上填写A记录,过一段时间后,别人就能通过你的域名访问你的网站了。DNS除了能解析域名之外还具有负载均衡的功能,下面是利用DNS工作原理处理负载均衡的工作原理图: DNS负载均衡原理图 由上图可以看出,在DNS服务器中应该配置了多个A记录,如: www.apusapp.com IN A 114.100.20.201; www.apusapp.com IN A 114.100.20.202; www.apusapp.com IN A 114.100.20.203; 因此,每次域名解析请求都会根据对应的负载均衡算法计算出一个不同的IP地址并返回,这样A记录中配置多个服务器就可以构成一个集群,并可以实现负载均衡。上图中,用户请求www.apusapp.com,DNS根据A记录和负载均衡算法计算得到一个IP地址114.100.20

ribbon 远程调用工具(Spring Cloud)

若如初见. 提交于 2020-01-10 03:44:51
1 负载均衡 调用微服务时,在集群服务器中,轮询发送请求 @LoadBalanced 注解添加到RestTemplate 修改请求路径,写服务id, rt.getForObject(“http://item-service/{1}”) 底层是RestTemplate 在微服务中是必须有的 2 重试 MaxAutoretries 单台服务器的重试次数 2) MaxAutoretriesNextServer 向后重试几台服务器 3) Connecttimeout 连接超时时间 ; 会引起重试 4) ReadTimeout 等待接收响应的超时时间 ; 会引起重试 5) OkToRetryOnAllOperations 是否对所有类型请求都重试 ; 默认只对get请求重试 两个超时参数在yml配置中配置无效,需要在代码中配置 3 微服务中必须使用负载均衡么? 微服务中必须使用重试么?重试优缺点是什么? 在微服务架构中,负载均衡是必须使用的技术,通过它来实现系统的高可用、集群扩容等功能。负载均衡可以分为两种:服务端负载均衡和客户端负载均衡。通常所说的负载均衡指服务器负载均衡, 服务器集群时才需要做负载均衡,单台服务器谈不上负载均衡 重试 优点:避免因为网络阻塞导致的连接失败 缺点:可能发生重复的请求操作 微服务中可以不使用负载均衡 缺点:一处爆炸处处爆炸 优点:省钱 微服务中不是必须使用重试

微服务架专题四:Spring-Cloud组件:ribbon 及自定义负载均衡策略

帅比萌擦擦* 提交于 2020-01-08 15:15:00
一、ribbon是什么? Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们也很容易使用Ribbon实现自定义的负载均衡算法。 二、客户端负载均衡?? 服务端负载均衡?? 我们用一张图来描述一下这两者的区别 这篇文章里面不会去解释nginx,如果不知道是什么的话,可以先忽略, 先看看这张图 服务端的负载均衡是一个url先经过一个代理服务器(这里是nginx),然后通过这个代理服务器通过算法(轮询,随机,权重等等…)反向代理你的服务,来完成负载均衡 而客户端的负载均衡则是一个请求在客户端的时候已经声明了要调用哪个服务,然后通过具体的负载均衡算法来完成负载均衡。 三、如何使用: 首先,我们还是要引入依赖,但是,eureka已经把ribbon集成到他的依赖里面去了,所以这里不需要再引用 ribbon的依赖,如图: 依赖: < dependency > < groupId

Nginx

和自甴很熟 提交于 2020-01-07 16:24:25
1 Nginx的简介 1.1 Nginx概述 Nginx是一个高性能的HTTP和反向代理服务器,特点是占用内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用Nginx的网站用户有:百度、京东、新浪、网易、腾讯和淘宝等。 1.2 Nginx作为web服务器 Nginx可以作为静态页面的web服务器,同时还支持CGI协议的动态语言,比如perl、php等。但是不支持java。java程序只能通过和tomcat等服务器配置使用。Nginx专为性能优化而开发,性能是最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并发连接数。 1.3 正向代理 Nginx不仅可以做反向代理,实现负载均衡。还能通过正向带来来进行上网等功能。 正向代理:如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。 例如:国内是不能访问www.google.com的,但是可以通过正向代理服务器来访问www.google.com,如下图所示: 1.4 反向代理服务器 反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端

php-fpm运行原理

做~自己de王妃 提交于 2020-01-07 02:14:44
来源: https://blog.csdn.net/sinat_38804294/article/details/94393621 一、php-fpm由来 1.cgi (common gateway interface 公共网关接口)是一种协议,也是一种程序 它是为了保证web server传递过来的数据是标准格式,方便cgi程序的编写者。 web server网站服务器只是内容的分发者(比如nginx)。如果请求/index.html,那么nginx会去文件系统中找到这个文件,发送给浏览器。这里分发的是静态数据。如果请求/index.php,根据配置文件,nginx知道这不是一个静态文件,需要去找php解析器来处理,那么nginx就会把这个请求简单处理交给php解析器。但是nginx传递给php解析器什么呢?url、查询字符串、post数据、header?这时候cgi就出来了,cgi就是规定了要传那些数据并以什么格式传递给后方处理这个请求的协议。 当web server 收到/index.php请求后,会启动对应的cgi程序,这里就是php的解析器。接下来php解析器会解析php.ini文件,初始化执行环境,然后处理请求,再以cgi规定的格式返回处理后的结果,退出进程。web server再把结果返回给浏览器。 2.fastcgi用来提高cgi程序性能的 cgi是个协议

WEB 集群与负载均衡(一)基本概念-上

泪湿孤枕 提交于 2020-01-05 09:56:49
 CDN技术详解 一本好的入门书是带你进入陌生领域的明灯,《CDN技术详解》绝对是带你进入CDN行业的那盏最亮的明灯。因此,虽然只是纯粹的重点抄录,我也要把《CDN技术详解》的精华放上网。公诸同好。 第一章 引言 “第一公里”是指万维网流量向用户传送的第一个出口,是网站服务器接入互联网的链路所能提供的带宽。这个带宽决定了一个 网站能为用户提供的访问速度和并发访问量。如果业务繁忙,用户的访问数越多,拥塞越严重,网站会在最需要向用户提供服务时失去用户。(还有“中间一公里” 和“最后一公里”分别代表互联网传输传输和万维网流量向用户传送的最后一段接入链路) 从互联网的架构来看,不同网络之间的互联互通带宽,对任何一个运营商网络的流量来说,占比都比较小,收敛比是非常高的,因此这里通常都是互联网传输中的拥堵点(运营商互联互通的问题) 其次是骨干网堵塞问题,由于互联网上的绝大部分流量都要通过骨干网络进行传输,这就要求骨干网络的承载能力必须与互联网 的应用同步发展,但实际上两者并不是同步的,当骨干网络的升级和扩容滞后于互联网之上的应用的发展时,就会阶段性地使得大型骨干网的承载能力成为影响互联 网性能的瓶颈(区域互联互通问题,骨干网带宽瓶颈) 在互联网领域有一个“8秒定律”,用户访问一个网站时,如果等待网页打开的时间超过8秒,会有超过30%的用户放弃等待 使用CDN会极大简化网站的系统维护工作量

nginx负载均衡配置

主宰稳场 提交于 2020-01-04 09:33:51
nginx负载均衡配置 什么是负载均衡 负载均衡的意思是在服务器集群中,需要有一台服务器作为调度者,客户端所有的请求都由调度者接收,调度者再根据每台服务器的负载情况,将请求分配给对应的服务器去处理; 在这个过程中,调度者如何合理分配任务,保证所有服务器将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡的问题了。 实现方式 1、Http重定向 过程描述 当用户向服务器发起请求时,请求首先被集群调度者截获;调度者根据某种分配策略,选择一台服务器,然后把选择的服务器IP地址封装在HTTP响应消息头的Location字段中,设置响应消息的状态码设为302,最后将这个响应消息返回给浏览器; 当浏览器收到响应消息后,解析Location字段,获取分配服务器的URL并发起请求,然后指定的服务器处理该用户的请求, 最后将结果返回给用户。 在使用HTTP重定向来实现服务器集群负载均衡的过程中,需要一台服务器作为请求调度者。用户的一项操作需要发起两次HTTP请求,一次向调度服务器发送请求,获取后端服务器的IP,第二次向后端服务器发送请求,获取处理结果。 调度策略 调度服务器收到用户的请求后,究竟选择哪台后端服务器处理请求,这由调度服务器所使用的调度策略决定。 随机分配策略: 当调度服务器收到用户请求后,可以随机决定使用哪台后端服务器

kubernetes系列教程(十六)基于nginx ingress实现服务暴露

吃可爱长大的小学妹 提交于 2020-01-03 19:27:17
文章目录 写在前面 Ingress简介 Nginx Ingress 2.1 Nginx ingress介绍 2.2 Nginx ingress安装 Ingress资源定义 3.1 Ingress定义 3.2 Ingress动态配置 3.3 Ingress路径转发 3.4 Ingress虚拟主机 3.5 Ingress TLS加密 Nginx Ingress高级功能 4.1 定制化参数 4.2 虚拟主机和路由 写在最后 参考文献 写在前面 本章介绍 kubernetes系列教程 的ingress概念,在kubernetes中对外暴露服务的方式有两种:service(NodePort或者外部LoadBalancer)和ingress,其中service是提供四层的负载均衡,通过iptables DNAT或lvs nat模式实现后端Pod的代理请求。如需实现http,域名,URI,证书等请求方式,service是无法实现的,需要借助于ingress来来实现,本文将来介绍ingress相关的内容。 1. Ingress简介 An API object that manages external access to the services in a cluster, typically HTTP. Ingress can provide load balancing, SSL

nginx配置详解和原理

巧了我就是萌 提交于 2019-12-28 07:18:49
1.nginx的配置文件 nginx 配置文件的整体结构    user nobody nobody; # 指定Nginx Worker进程运行用户以及用户组,默认由nobody账号运行,nobody 是系统用户,是一个不能登陆的帐号,一个特殊用途的用户 ID #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #指定了Nginx要开启的进程数。每个Nginx进程平均耗费10M~12M内存。建议指定和CPU的数量一致即可。 #全局错误日志及PID文件 用来定义全局错误日志文件。日志输出级别有debug、info、notice、warn、error、crit可供选择,其中,debug输出日志最为最详细,而crit输出日志最少 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; # pid是个主模块指令,用来指定进程pid的存储文件位置worker_rlimit_nofile 65535; #用于绑定worker进程和CPU, Linux内核2.4以上可用 #工作模式及连接数上限 events { #epoll是多路复用IO(I/O Multiplexing)中的一种方式,

负载均衡

假如想象 提交于 2019-12-27 22:19:32
、##### 负载均衡简单理解: 负载均衡分为两种: 1、客服端负载均衡 2、服务端负载均衡 1、服务端负载均衡 是通过负载均衡器来维护一份服务端列表,比如nginx,就是通过nginx里面来配置多个url,根据负载均衡算法,将请求转发到相应的服务器上面,实现负载均衡。 2、客户端负载均衡 客户端负载均衡与服务端负载均衡最大的区别,就在于每个客户端服务都要有一份要访问的清单,即服务消费者这里需要存一份服务提供者的清单,dubbo架构从zookeeper注册中心获取,spring cloud架构从Eureka Server中获取,然后采用各自的负载均衡算法,dubbo提供有负载均衡算法,spring cloud采用Ribbon的负载均衡,实现服务消费者调用服务提供者的过程的负载均衡 来源: CSDN 作者: songsongDBB28 链接: https://blog.csdn.net/weixin_43231076/article/details/103738711