nginx作为负载均衡服务器应用案例

简介: 一、负载均衡算法二、常见的nginx应用架构以及几个故障排除案例

nginx作为负载均衡服务器应用案例

 

目录:

一、负载均衡算法

二、常见的nginx应用架构以及几个故障排除案例

 

 

 

一、负载均衡算法

 

常用的算法

1.轮询

第一个请求交给第一个,第二个交给第二个,三个交给第一个。

 

2. Weight

Weight的应用方向主要针对于站点,户端服务器性能不一致。它的工作就是把处理请求的时候,如果服务器好,就多去承担一个请求,如果的服务器差点,就少点。占其中一个就可以通过Weight

去实现。

针对后端服务器性能不一致,如果后端服务器配置都不一样的服务器最好多承担。


3. ip_hash

第三个是ip_haship_hash是基于ip算法的。一般用在动静网站,比如共享。可以通过ip_hash登陆后台,如果通过的没有ip的算法,第一个请求会跳到第一个后端服务器的后台上去。第二个请求跳到第二个,但是后台登录会出现超时的情况。

 

案例

(关键字)upstream myserver( 这里的值不建议用ip)

server 192.168.12.181:80 weight=3 max_fails=timeout=20s;(关于请求的一个时间)如果在20s之内没有接受到请求,说明这个服务器的一个问题:这就是后端容错的一个算法。

server 192.168.12.181:80 weight=1 max_fails=timeout=20s;

server 192.168.12.181:80 weight=4 max_fails=timeout=20s;

}

Sever

{

Listen     80;

server_name www.domain.com 192.168.12.189;

index index.htm index.html;

root/ixdba/web/wrwwroot;

重点引用的参数

location/( 通过反向代理的功能进行引用)

 

  prexy_passhttp//myserver (负载的策略,在后端服务器发生的状况时,出现一个判断,当发现一些状况例如502 503 时,就会把请求重置,能保证当出现一些故障的时候,不会把一些请求反给用户等等。

proxy_next_upstreamhttp_500http_502 http_503 error timeout invalid_header;

includelopt/nginx/conf/proxy.conf;

 

这个例子使用的是第二个算法,根据weight全值,去做一个匹配。在定义的负载均衡时的关键字upstream来做定义。


首先定义一个upstream,和自定义的字符server,这里不建议用ip,因为也是一个字符,所以只需要用一个普通字符。


首先跟上后端的ip端口,接着跟上一个字符。Msx-fails的意思是最大可失败的次数,超过三个失败之后,就不会把新的请求转走,只能是关于请求的一个时间.去后端的节点去做一个探测请求,如果在20秒之内,还没有收到后端服务器的请求的话,就认为这个节点出现了问题。这种20秒持续三次。如果持续三次在一分钟,60秒之内,这个情况下,那就把这个节点从机器里面返回。

 

后面要做一个引用,当proxy-pass这个参数在这,或者未引用来通过反向代理的功能,重点看后面跟着的参数,跟上面对应起来,需要注意的时关于负担的一些策略,像后端这状态的话,会做一个跳转。或者发生一些错误的话,都会把请求去重置。


当后面出现不足的时候,他不会把的故障请求返回给前端的一个浏览器,或者返回给前端的的用户。

 

问题提问与讨论

1.     不加端口是没有问题,默认80端口

2.     反向代理就是要分清为什么用fca,要看他的概念是一个适配器,例如python PHP第三方动态语言,与这些语言做配合才需要这个.

3.     负载均衡给后端需要有项目,首先要完整性,请求交与后端后都是后端完成

4.     安全性分系统与nginx的自身部分安全

5.     nginxtomcat一定要动静分离

 

二、常见的nginx应用架构以及几个故障排除案例

 

1.nginx+tomcat 常见架构

image.png

主要思路:nginx的反向代理功能静态请求交给nginx来完成请求交给后端slave完成

 

有的时候为了架构稳定,还要给后端服务器nginx做一个主备的架构,Ng1ng2,完整的架构就是ng1是主架构,另一个是备机,最常见架构就是nginx+tom他的反向代理的动静分离,后端可能是基于Python的服务器,它的一个主要思路就是通过nginx的反向代理,然后动态请求交给后端的slave12

 

它的特点就是nginx附带功能。当然有时候为了架构的稳定性,说有个nginx1和的nginx2,如果没有备机的话,那可能所有的调度都调度不过来了。

 

 

2.Nginx+php常见架构

image.png

前端lvs1后端是服务

 

前端是lvs,后端是nginx+php,根据业务性质来定的。

这里的第二种架构,它根据业务性质来定,它的后端设计,一般来说架构是不处在一块儿的,他的压力会来自于phpLvs的核心模型是基于端口的负载调度。

 

这块的动态解析,它的一个主要核心部门是在so模型是基于思考这么一个附带调度。是基于端口的地方,刚好的这种前面是lvs,后面是php的网站服务这种结构。


还有两个去做负载均衡调度,后端是nginx+php去提供服务。如果实现一个更高稳定性高级架构的话,keepalived做一个主备,去做一个高可用的一个服务器。

 

说明:当nginx的主要功能不是反应代理的时候就可以在前面用lvs1,当nginx是反向代理时候 就没有必要在加LVS

 

3.如何排除nginx故障

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
弹性计算 运维 监控
slb后端服务器组(Backend Server Group)关联
阿里云SLB的后端服务器组提供逻辑分组、精细化路由、端口隔离、权重分配与会话保持等功能,便于资源管理、流量控制和故障隔离。通过监听规则、健康检查、标签和API关联,实现灵活的后端资源配置,适应多变的业务需求,确保服务稳定性和资源利用率。
17 1
|
1月前
|
弹性计算 负载均衡 容灾
slb配置后端服务器组
配置阿里云SLB后端服务器组涉及四个主要步骤:创建服务器组、添加ECS实例、关联监听规则和设定负载均衡策略。这使得流量根据业务需求和服务器特性进行转发,便于应用架构的灵活管理和扩展,支持蓝绿部署、灰度发布,并通过多可用区提升系统可用性和容灾能力。
26 3
|
17天前
|
负载均衡 算法 应用服务中间件
面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
32 0
|
1月前
|
前端开发 应用服务中间件 nginx
使用Docker快速搭建Web服务器Nginx
本文指导如何使用Docker快速搭建Nginx服务器。首先,通过`docker pull`命令获取Nginx镜像,然后以容器形式运行Nginx并映射端口。通过挂载目录实现本地文件与容器共享,便于自定义网页。使用`docker ps`检查运行状态,访问IP:8088确认部署成功。最后,介绍了停止、删除Nginx容器的命令,强调Docker简化了服务器部署和管理。
50 0
|
7天前
|
负载均衡 应用服务中间件 nginx
Nginx 负载均衡
Nginx 负载均衡
21 2
|
9天前
|
应用服务中间件 Linux 开发工具
如何在阿里云服务器快速搭建部署Nginx环境
以下是内容的摘要: 本文档主要介绍了在阿里云上购买和配置服务器的步骤,包括注册阿里云账号、实名认证、选择和购买云服务器、配置安全组、使用Xshell和Xftp进行远程连接和文件传输,以及安装和配置Nginx服务器的过程。在完成这些步骤后,你将能够在服务器上部署和运行自己的网站或应用。
|
14天前
|
弹性计算 应用服务中间件 Linux
阿里云ECS服务器上从零开始搭建nginx服务器
阿里云ECS服务器上从零开始搭建nginx服务器
|
1月前
|
弹性计算 负载均衡
slb添加后端服务器
阿里云SLB服务用于流量分发,提升系统可用性和响应速度。添加ECS实例到SLB的步骤包括:登录控制台,选择“弹性计算”->“负载均衡”,找到目标SLB实例,进入详情页,点击“添加后端服务器”。挑选ECS实例,可按ID、名称或标签筛选,设置权重(默认100),并确保ECS实例状态正常,与SLB在同一地域,安全组允许SLB连接。添加后可考虑配置健康检查等高级选项。
14 1
|
1月前
|
弹性计算 负载均衡 网络安全
slb创建后端服务器组
在阿里云SLB服务中创建后端服务器组,需登录控制台,选择目标SLB实例,进入监听器设置,添加后端服务器。选择ECS实例或ENI,设定服务器端口和权重,然后保存设置。此操作将ECS实例纳入SLB的负载均衡与健康检查管理。
17 1
|
1月前
|
弹性计算 负载均衡
slb添加后端服务器
阿里云SLB服务实现流量分发,提升业务可用性和响应速度。添加后端服务器步骤包括:登录控制台,选择“弹性计算”->“负载均衡”,点击目标SLB实例进入详情,点击“后端服务器”->“添加ECS实例”。筛选并选择ECS实例,设置权重,确认后点击“确定”。添加后检查健康检查状态,确保ECS实例状态正常,同地域、可用区,并配置好安全组规则。
16 2