Nginx服务器支持设置一组服务器作为后端服务器,Nginx反向代理,负载均衡等重要功能会经常涉及后端服务器。

服务器组的设置包括以下的一些指令,他们是由标准的HTTP模块ngx_http_upstream_module进行解析和处理的。

一 upstream指令

该指令是设置后端服务器的主要指令,其他的指令都在该指令中进行配置,类似于之前的http块,server块,其语法结构如下:

upstream name {……}
name是后端服务器组的组名,花括号中列出后端服务器组中包含的服务器。

默认情况下,某个服务器组接收到请求以后,按照轮询(Round-Robin)策略顺序选择组内服务器处理请求。

如果一个服务器在处理请求的过车中出现错误,请求会被依照顺序交给组内的下一个服务器进行处理。以此类推,直到返回正常的响应,如果组内服务器都出错则返回最后一个服务器结果。

我们可以根据各个服务器的处理能力或者资源配置的不同情况,给各个服务器配置不同的权重,让能力强的多处理,能力弱的少处理。

二 server指令

该指令用于设置组内的服务器,语法结构为:

server address [参数];

address: 服务器地址

参数:为当前服务器配置更多属性,这些属性变量包括以下内容:

weight=number: 配置权重

max_fails = number: 设置一个请求失败的连接次数,如果超过这个次数,则认为该服务器无效

fail_timeout=time: 设置超时多长时间认为连接失败,默认10s

backup: 将某台组内服务器标记为备用服务器,只有当正当服务器无效的时候或者繁忙的时候,该服务器才被用来处理客户端请求

down: 将组内某台服务器永久标记为无效

upstream backend {

serverbackend1.example.com weight 5;

server192.168.1.50:8080 max_fails=3 fail_timeout=30s weight;

serverunix:/tmp/backend3

}

三 ip_hash指令

该指令用于实现会话保持功能,某个客户端的请求多次重定向到组内同一台服务器上,保证客户端与服务器之间建立稳定的会话。只有当服务器处于down状态,客户端请求才会被下一个服务器处理,语法结构:

ip_hash;

有时候可以我们关心的服务器组内个服务器之间会话共享问题,但是在实际使用中也有些限制。

# ip_hash不能和server指令中的weight变量一起使用

# 由于ip_hash主要根据客户端IP地址分配服务器因此在整个系统中,Nginx服务器应该是处于最前端的服务器,这样才能获取到客户端的IP地址。

upstream backend {

ip_hash;

server a.example.com;

serverb.example.com;

}

四 keepalive指令

该指令用于控制网络连接保持的功能。通过该指令,能够保证Nginx服务器的工作进程为服务器组打开一部分网络连接,并且将数量控制在一定范围内。

语法结构:

keepalive connections;

其中connections为Nginx服务器的每一个工作进程允许该服务器组保持的空闲网络连接数的上限值。如果超过该值,工作进程将采用最近最少使用的策略关闭网络连接。

五 least_conn指令

该指令用于配置Nginx服务器使用负载均衡策略为网络连接分配服务器组内的服务器。该指令在该功能上实现了最少连接负载均衡算法,在选择组内的服务器时,考虑个服务器权重的同时,每次选择都是当前网络连接最少的那台服务器,比较每个后端的conns/weight,选取该值最小的后端。如果这样的服务器有多台,就采用加权轮询原则选择。

Nginx之配置后端服务器组相关推荐

  1. 配置Nginx前端Apache后端服务器LNMPA-与LNMP,HHVM性能比拼

    文章目录 LNMPA一键安装 LNMPA性能比较 HHVM性能比拼 Nginx前端小结 文章目录 LNMPA一键安装 LNMPA性能比较 HHVM性能比拼 Nginx前端小结 Apache和Nginx ...

  2. vue项目设置服务器地址,vue项目配置后端服务器地址

    vue项目配置后端服务器地址 内容精选 换一换 查询负载均衡器状态树.可通过该接口查询负载均衡器关联的监听器.后端云服务器组.后端云服务器.健康检查.转发策略.转发规则的主要信息,了解负载均衡器下资源 ...

  3. nginx转发及后端服务器获取真实client的IP

    针对nginx的模块介绍可以查阅wiki:http://wiki.nginx.org/Modules 常用模块:HTTP Core Proxy Rewrite Upstream 原理: squid,v ...

  4. nginx设置代理后端服务器增加前缀

    需求背景 有时候我们需要这样一个操作,线上是请求/aaa/bbb/ccc 但是我们线下测试的时候为了不影响已有服务,增加了一个path为 /ddd/aaa/bbb/ccc这样的 也就是我们后端代理的时 ...

  5. Nginx+Ftp配置图片服务器,实现网址直接访问图片

    一.Nginx 教程:https://blog.csdn.net/zyw_java/article/details/77114671 这个教程要注意,里面的路径有点问题,详情见第三部分 效果:在ip: ...

  6. 腾讯云服务器nginx安装配置

    开始配置前,需要购买一个服务器 腾讯云官网,购买过后还需要你先去备案,从提交备案到管理局通过正常大概一个星期,下面是我的备案操作记录,被腾讯云客服打电话驳回一次,因为填写的备用电话打不通,需要注意:提 ...

  7. Nginx——缓存配置

    缓存配置 对于一个含有大量内容的网站来说,随着访问量的增多,对于经常被用户访问的内容,若每一次都要到后端服务器中获取,会给服务器造成很大的压力.为此,利用反向代理服务器对访问频率较多的内容进行缓存,有 ...

  8. 华硕路由器配置虚拟服务器,华硕路由器开启设置虚拟服务器

    华硕路由器开启设置虚拟服务器 内容精选 换一换 设置"网络":在下拉列表中选择可用的虚拟私有云.子网,并设置私有IP地址的分配方式.弹性云服务器网络使用虚拟私有云(VPC)提供的网 ...

  9. 运维企业专题(2)HTTP加速器——Varnish缓存机制后篇(后端服务器集群、负载均衡与CDN推送平台搭建)

    1.实验一:配置后端服务器集群 1)实验目的:定义不同域名站点的后端服务器,通过域名会访问不同的后端主机 2)实验过程: <1>在调度器server1上编写Varnish的配置文件 vim ...

最新文章

  1. PHP开启session的函数,ThinkPHP中session函数详解
  2. directx 游戏模拟键盘输入
  3. html js css倒计时,js+css3倒计时动画特效
  4. cmd mysql log_如何使用mysqlbinlog工具?
  5. Qos、Tos、Cos、DSCP
  6. 上凸包和下凸包_使用凸包聚类
  7. 手风琴案例jquery写法
  8. UVa 1225 Digit Counting
  9. 华为A1路由器虚拟服务器,华为a1路由器怎么设置 华为路由器a1怎么安装视频-192路由网...
  10. 基于qtc++设计文本编辑器的代码_文本编辑器Vim/Neovim被曝任意代码执行漏洞,Notepad:兄弟等你好久了...
  11. mybatis中使用小于号
  12. keepalived详解(三)——keepalived与Nginx配合实战
  13. Windows Workflow HOL学习笔记(七):添加一个验证来检查Email参数
  14. Bongiovi DPS for Mac - 优秀的声音增强软件
  15. python多层bp网络_多层bp神经网络 python
  16. 微信支付相关(付款码支付,Native支付)
  17. 翻译软件-好用的翻译软件-免费翻译软件大全
  18. vscode——VScode 中 使用 comment translate翻译 插件
  19. tig只看某个作者的提交
  20. Integer.valueOf、intValue、Integer.parseInt使用

热门文章

  1. redistemplate 设置失效时间_开发新技能之利用Redis高级用法监听过期键处理失效的订单...
  2. PostgreSQL 12系统表(2)pg_tables
  3. 【django】三、常用的模板标签和过滤器
  4. 决策树之分类树快速理解
  5. ARM中断产生和管理
  6. 如何向应用程序代码添加跟踪语句
  7. python做系统查人的信息_Python综合项目之员工信息查询
  8. 超级便宜的鸿蒙开发板环境搭建-编译-烧录
  9. Linux终端显示工作路径
  10. pytorch修改tensor数据类型