1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如:
upstream bakend {
server 192.168.159.10 weight=10;
server 192.168.159.11 weight=10;
}

3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如:
upstream resinserver{
ip_hash;
server 192.168.159.10:8080;
server 192.168.159.11:8080;
}

4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream resinserver{
server server1;
server server2;
fair;
}

5、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

upstream resinserver{
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}

tips:

upstream resinserver{#定义负载均衡设备的Ip及设备状态
ip_hash;
server 127.0.0.1:8000 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6801;
server 127.0.0.1:6802 backup;
}

在需要使用负载均衡的server中增加
proxy_pass http://resinserver/;

每个设备的状态设置为:
1.down 表示单前的server暂时不参与负载
2.weight 默认为1.weight越大,负载的权重就越大。
3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4.fail_timeout:max_fails次失败后,暂停的时间。
5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

nginx支持同时设置多组的负载均衡,用来给不用的server来使用。

client_body_in_file_only 设置为On 可以讲client post过来的数据记录到文件中用来做debug
client_body_temp_path 设置记录文件的目录 可以设置最多3层目录
location 对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡

一些常用内置变量

$arg_name:请求 uri 中的 name 参数至
$args:请求 uri 的所有参数,和 $query_string 相同
$uri:当前请求的 uri,不带参数
$request_uri:请求的 uri,带完整参数
$host:http 请求报文中 host 首部,如果没有 host 首部,则以处理此请求的虚拟主机的主机名替代
$hostname:nginx 服务运行在主机的主机名
$remote_addr:客户端 IP
$remote_port:客户端 port
$remote_user:使用用户认证时客户端用户输入的用户名
$request_filename:用户请求中的 URI 经过本地 root  或 alias 转换后映射的本地的文件路径
$request_method:请求方法
$server_addr:服务器地址
$server_name:服务器名称
$server_port:服务器端口
$server_protocol:服务器向客户端发送响应时的协议,如 http/1.1,http/1.0
$scheme:在请求中使用的 scheme,如 https://www.magedu.com/ 中的 https
$http_name:匹配请求报文中的指定 HEADER,如 $http_host 匹配请求报文中的 host 首部
$sent_http_name:匹配响应报文中指定的 HEADER,例如 $sent_content_type 匹配响应报文中的 content-type 首部
$status:响应状态

转载于:https://www.cnblogs.com/zery/p/6699404.html

Nginx upstream 配置相关推荐

  1. nginx upstream配置_Prometheus快速监控Nginx

    需求:Prometheus 监控Nginx主要用到以下三个模块: nginx-module-vts:Nginx virtual host traffic status module,Nginx的监控模 ...

  2. nginx upstream配置aws alb域名导致timeout报错

    目录 问题描述 问题分析 问题结论 解决方法 问题描述 先贴nginx的配置,下面是我的nginx ingress的upstream配置,将流量转发到aws的 alb  上,通过alb的负载均衡策略, ...

  3. nginx upstream配置

    假设Nginx没有只只能代理一台服务器的话,那它也不可能像今天这么火.Nginx能够配置代理多台服务器.当一台服务器宕机之后.仍能保持系统可用.详细配置步骤例如以下: 1. 在http节点下,加入up ...

  4. nginx upstream 配置

    安装 nginx yum installl -y nginx 配置 conf cd /etc/nignx/conf.d vim xxx.conf upstream tcs {server x.x.x. ...

  5. 3天精通nginx第二天-负载均衡upstream配置

    负载均衡 nginx负载均衡器 upstream配置 nginx负载均衡的5种策略 其他指令 实战配置-代理后台服务 现在有一堆砖需要搬运,一个老板雇佣了一个程序员进行搬运,这样的模式就是单节点,随着 ...

  6. 通过分析nginx upstream源码来看动态配置upstream模块

    upstream回源处理流程 代码围绕着ngx_http_upstream.c展开,该模块主要为创建mainconf函数: static void *ngx_http_upstream_create_ ...

  7. nginx upstream模块配置

    如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用.具体配置过程如下: 1. 在http节点下,添加ups ...

  8. nginx技术(2)nginx的配置详解

    nginx的配置 1,启动nginx 1 2 3 4 5 6 7 [root@centos6 nginx-1.2.9]# /usr/sbin/nginx -c /etc/nginx/nginx.con ...

  9. nginx+tomcat配置负载均衡集群

    一.Hello world 1.前期环境准备 准备两个解压版tomcat,如何同时启动两个tomcat,方法如下: 首先去apache tomcat官网下载一个tomcat解压版. 解压该压缩包,生成 ...

最新文章

  1. 内核功能导致重启_红帽RHEL Linux 7.7正式版发布 支持内核实时修复技术无需重启...
  2. 反射获取空参数成员方法并运行
  3. mysql数据库localhost已断开_完美解决MySQL通过localhost无法连接数据库的问题
  4. 【二】Windows API 零门槛编程指南——CreateWindow 窗口创建 “万字长篇专业术语全解”
  5. 矩阵论-线性变换的特征值与特征变换
  6. uniapp 获取图片的高度_uniapp自定义切图
  7. lg函数c语言表达式,lgammal - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
  8. day059-60 ajax初识 登录认证练习 form装饰器, form和ajax上传文件 contentType
  9. 你要如何衡量你的人生
  10. NVR和DVR有什么区别_NVR和DVR哪个好 IP Camera
  11. 为什么要报考系统架构设计师考试
  12. 怎么用python骂人_人生苦短我用Python,本文助你快速入门
  13. 统一通信系统解决方案
  14. CSS动画效果(animation属性)解析
  15. 理解COM的线程套件(转)
  16. STM32单片机烧录失败汇总
  17. python秒表游戏代码_Javascript实现秒表计时游戏
  18. PDF文件如何转成HTML格式?说一种思路
  19. MySQL 生成随机数字、字符串、日期、验证码以及 UUID
  20. Android培训武汉,武汉安卓培训之Android如何使用样式创建半透明窗体

热门文章

  1. 百度富文本编辑器,改变图片上传存储路径
  2. preloadlazy load
  3. javascript --- 对象的方式体验链式调用
  4. http --- 基本认证与摘要认证
  5. javascript --- 作用域和闭包
  6. 算法 --- 归并排序的js实现
  7. JavaScript --- 跨浏览器的事件对象
  8. ES5-1 发展史、ECMA、编程语言、变量、JS值
  9. 人工智能之基于face_recognition的人脸检测与识别
  10. 《Axure RP8 网站和APP原型制作 从入门到精通》一2.7 交付