nginx负载均衡

负载均衡算法

北城以北 提交于 2019-12-23 21:36:28
负载均衡算法可以分为下面几类: 任务平分类:可以按照平均分配或者加权平均分配的算法。 负载均衡类:按照服务器的负载,比如CPU负载,IO负载等进行分配(站在服务器的角度)。 性能最优类:客户端按照服务器的响应时间来分配请求(站在客户端的角度)。 Hash类:按照特定的信息进行hash值,然后分配给特定的服务器,比如按照IP hash算法,Session ID Hash算法,或者按照用户的ID hash等等。 一、任务平分类 轮询算法 该算法实现简单,即轮询每个服务器,分别将强求发送到不同的服务器中,不过对于某些场景,比如购物车业务会造成分布式session一致性问题。 而且该算法对于服务器的新旧,好坏程度无感知,如64核和32核的服务器的负载应当不同。 加权轮询 该算法解决上面的问题,可以按照服务器的核数等情况分配不同数量的请求 ,比如64核的服务器请求数应当多于32核的服务器。 但是该算也不能避免分布式session一致性的问题,也无法感知服务器的运行状态。(运行状态即服务器正在运行时的CPU负载以及IO负载)。 二、负载均衡类 负载最低优先算法 该算法解决了轮询无法感知服务器的运行状态的问题。 对于LVS负载均衡设备,可以通过“连接数”来衡量服务器的负载,连接数越多,负载越高。 对于Nginx负载均衡设备,可以通过“HTTP请求数”来衡量服务器负载等。 缺点:

负载均衡算法

↘锁芯ラ 提交于 2019-12-21 03:45:32
一个网络请求中会经历多个节点的负载均衡:DNS、Nginx、网关、RPC(dubbo)等。但是负载均衡的算法大多数是一样的,下面列举一下。 以nginx的负载算法为例: 1、轮询+权重 2.、ip hash 3、url hash 4、least_conn 5、least_time 基本上就这些。这些算法不但是这些第三的组件用到,我们在开发的过程中自己写代码也可以使用。 来源: https://www.cnblogs.com/cuiqq/p/11960712.html

负载均衡所谓的四层❓七层❓

心不动则不痛 提交于 2019-12-20 23:57:32
目录 写在最前: 一、简单分析 1、换句话理解二、三、四、七 2、四到七层负载均衡 3、负载均衡器通常称为四层交换机或七层交换机 4、四层交换 5、七层交换 6、注意 二、区别 1、技术原理上 2、应用场景上 三、一些主流负载均衡软件 1、NGINX 优点: 缺点: 2、LVS 优点: 缺点: 3、HAProxy 的特点 4、NGINX 对比 LVS 的总结 5、现在对网络负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术 写在最前: 所谓四层就是基于 IP + PORT 的负载均衡 所谓七层就是基于 URL 等应用层信息的负载均衡 同理,还有基于 MAC 地址的二层负载均衡和基于 IP 地址的三层负载均衡 一、简单分析 1、换句话理解二、三、四、七 二层负载均衡会通过一个虚拟 MAC 地址接收请求,然后再分配到真实的 MAC 地址 三层负载均衡会通过一个虚拟 IP 地址接收请求,然后再分配到真实的 IP 地址 四层通过虚拟 IP + PORT 接收请求,然后再分配到真实的服务器 七层通过虚拟的 URL 或主机名接收请求,然后再分配到真实的服务器 2、四到七层负载均衡 所谓的四到七层负载均衡,就是在对后台的服务器进行负载均衡时,依据四层的信息或七层的信息来决定怎么样转发流量。 比如四层的负载均衡,就是通过发布三层的 IP 地址(VIP),然后加四层的端口号

6月12日任务 Nginx负载均衡、 ssl原理、生成ssl密钥对、 Nginx配置ssl

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-10 02:16:18
12.17 Nginx负载均衡 1.新建配置文件 load.conf upstream lxy { ip_hash; server 180.163.26.39; server 59.37.96.63; } server { listen 80; server_name www.qq.com; location / { proxy_pass http://lxy; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 不能解析https 443端口 12.18 ssl原理 https 数据是加密的 12.19 生产ssl密钥对 1. cd /usr/local/nginx/conf/ 2. openssl genrsa -des3 -out tmp.key 2048 //生成私钥 3. openssl rsa -in tmp.key -out lxy.key //转换key 取消密码 4. rm -f tmp.key //删除key 5. openssl req -new -key lxy.key -out lxy.csr //生成证书请求文件 6. openssl

Nginx负载均衡服务器

邮差的信 提交于 2019-12-06 19:18:15
nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态、静态页面的分离,可以按照轮询、ip哈希、URL哈希、权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查。 如果只有一台服务器时,这个服务器挂了,那么对于网站来说是个灾难.因此,这时候的负载均衡就会大显身手了,它会自动剔除挂掉的服务器. 下面简单的介绍下我使用Nginx做负载的体会 Nginx负载均衡一些基础知识: nginx 的 upstream目前支持 4 种方式的分配 1)、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2)、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 3)、ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 4)、fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。 5)、url_hash(第三方) 配置: 在http节点里添加: #定义负载均衡设备的 Ip及设备状态 upstream myServer { server 127.0.0.1:9090 down; server 127.0.0.1:8080 weight=2; server

用Nginx和Apache的反向代理解决Ajax的跨域问题

人盡茶涼 提交于 2019-12-06 18:18:48
概述 Ajax开发中令人头疼的问题之一是跨域问题。在服务器端来说,我们常用的手段之一就是利用Nginx或者Apache的反向代理功能。 傲游主站上有一个很吸引人的功能,就是下载次数计数,如下图所示。这个功能就是利用了上述技术实现的。 从下图的Firebug中可以看到,该页面通过Ajax反复请求一个名为/api/counter的路径以径获取最新的下载数量。 而这个输出路径实际上在服务器上是不存在的,这个路径只是另外一台服务器某个路径而已,这就是使用了Nginx的反向代理功能实现的。 反向代理 反向代理(Reverse Proxy),顾名思义,就是代理的反向功能。我们使用代理,可以访问一些我们所不能直接访问到的网络,或者可以隐藏自己的真实身份。而反向代理,可以在不暴露内部服务器的情况下,让外部用户访问我们内部、防火墙后的服务。 使用反向代理主要有以下好处: 1. 请求的统一控制,包括设置权限、过滤规则等; 2. 隐藏内部服务真实地址,暴露在外的只是反向代理服务器地址; 3. 实现负载均衡,内部可以采用多台服务器来组成服务器集群,外部还是可以采用一个地址访问; 4. 解决Ajax跨域问题。 5. 作为真实服务器的缓冲,解决瞬间负载量大的问题。 Nginx 与Apache 配置 1、Nginx 回到计数器的这个例子,Nginx的配置片段如下所示: location /api/counter

0x06 - Nginx 负载均衡会话保持

孤街浪徒 提交于 2019-12-05 22:08:44
Nginx 负载均衡会话保持 背景 负载均衡时,如果APP需要保持特定状态的时候,就要保证同一用户的 session 会被分配到同一台服务器上。 实现方案 使用cookie 将用户的 session 存入 cookie 里,当用户分配到不同的服务器时,先判断服务器是否存在该用户的 session,如果没有就先把 cookie 里面的 sessoin 存入该服务器,实现 session 会话保持。缺点是存入 cookie 有安全隐患。 使用缓存 利用 memcache ,Redis 等缓存分布式的特点,可以将所有服务器产生的 session 存入同一台服务器的缓存中,实现 session 共享。这样安全性比较高,而且从内存中读取 session 比从文件中读取速度快。 使用 ip_hash 如果是 nginx 服务器的负载均衡,可以在 upstream 里设置 ip_hash,每个请求按访问 ip 的 hash 结果分配,映射到固定某一台的服务器。缺点是可能导致负载不均衡。 upstream https_proxy { server 172.26.114.89:8443; server 172.26.114.93:8443; ip_hash; } 注:ip_hash 不能和 weight 在一起使用。 注:使用案例,使用 Spring 框架,Redis 共享 Session

nginx负载均衡

橙三吉。 提交于 2019-12-05 06:56:34
1、请解释一下什么是Nginx? Nginx是一个web服务器和方向代理服务器,用于HTTP、HTTPS、SMTP、POP3和IMAP协议。 2、请列举Nginx的一些特性。 Nginx服务器的特性包括: 反向代理 /L7负载均衡器 嵌入式 Perl解释器 动态二进制升级 可用于重新编写 URL,具有非常好的PCRE支持 3、使用“反向代理服务器”的优点是什么? 反向代理服务器可以隐藏源服务器的存在和特征。它充当互联网云和 web服务器之间的中间层。这对于安全方面来说是很好的,特别是当使用web托管服务时。 来源: https://www.cnblogs.com/lingboweifu/p/11912096.html

node.js中http模块、koa、pm2、nginx、域名 的关系

孤者浪人 提交于 2019-12-05 04:48:24
如果我们想要自己搭建一个服务器,上面这些名词应该是我们经常会听到的,他们之间有什么关系呢? node.js http模块 基础支持 koa 路由 静态文件 权限 中间件 模板 文件上传 Gzip压缩 pm2 热启动 单机负载均衡 监听 nginx 集群负载均衡 反向代理 虚拟主机 Gzip压缩 域名 服务器于用户之间的连接 来源: https://www.cnblogs.com/mrzhu/p/11907200.html

负载均衡(一)

北城余情 提交于 2019-12-04 11:04:01
一、什么是负载均衡 负载均衡,名字很直白了就是让服务器的负载更均衡合理(好像说了句废话^_^)。负载均衡在不同的应用场景意义也有所不同。负载均衡的作用总结起来就两点: 灾备和分流 。 灾备:在应用中的目的是提供系统的可用性,保证某个服务出现异常时不至于整体瘫痪。集群让有同样功能的服务互相替补。灾备是集群自然具有的能力 分流:在应用中的目的是为了提高系统的性能,通过集群让系统能够承载更大的压力。 负载均衡的关键只有一个, "分发"!。 负载均衡的各种负载策略也只是为了让上面说到的 分流 更合理。所以说分流的优化是需要我们认为努力的,而灾备的能力是集群紫瑶具备的。 二、负载均衡方案 一、DNS负载均衡 主要负载算法,轮询。 二、Nginx负载均衡 Nginx的物种负载均衡算法: 1、round robin(默认) 轮询方式,依次将请求分配到各个后台服务器中,默认的负载均衡方式。 适用于后台机器性能一致的情况。 挂掉的机器可以自动从服务列表中剔除。 2、weight 根据权重来分发请求到不同的机器中,指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 比如: upstream bakend { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; } 3、IP_hash