nginx上游模块
1 概念
The ngx_http_upstream_module is used to define groups of servers that can be referenced by the proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass, and grpc_pass directives.
nginx反向代理做动静分离时,比如proxy_pass,后面只能写一个地址,如:http://127.0.0.1:8080,但有时需要多个动态组件以实现负载均衡,这时就可以把多个组件都写在一个upstream里,然后在proxy_pass后面调unstream标签。
2 参数
upstream写在http标签里,一般在server上面,然后在server里引用。或者直接在一个vhost.cong里,写在server上面。
upstream jabphp {
    server 10.102.22.12:9000 max_fails=20 fail_timeout=10 weight=5;
    server 10.102.22.13:9000 max_fails=20 fail_timeout=10 weight=5;
    server 10.102.22.14:9000 max_fails=20 fail_timeout=10 weight=5;
}
server {
    listen       80;
    server_name  www.jab.com jab.com;
    root         /data/jab.com/;
    #charset koi8-r;
    access_log  logs/jab.com.log  main;
    index index.php index.html;
location ~ .*\.php?$ {
        fastcgi_pass   jabphp;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
location / {...}
}
LB算法
轮询
upstream  svr {
       server    localhost:10001;
       server    localhost:10002;
}
权重
upstream  svr{
       server    localhost:10001 weight=1;
       server    localhost:10002 weight=2;
}
iphash
每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)。
upstream  svr {
       ip_hash;
       server    localhost:10001 weight=1;
       server    localhost:10002 weight=2;
}
nginx上游模块的更多相关文章
- 基于Nginx dyups模块的站点动态上下线并实现简单服务治理
		简介 今天主要讨论一下,对于分布式服务,站点如何平滑的上下线问题. 分布式服务 在分布式服务下,我们会用nginx做负载均衡, 业务站点访问某服务站点的时候, 统一走nginx, 然后nginx根据一 ... 
- Nginx 切片模块、断点续传
		熟悉 CDN 行业主流技术的朋友应该都比较清楚,虽然 Nginx 近几年发展的如日中天,但是基本上没有直接使用它自带的 proxy_cache 模块来做缓存的,原因有很多,例如下面几个: 不支持多盘 ... 
- nginx事件模块分析(一)
		nginx ngx_events_module模块分析 ngx_events_module模块是核心模块之一,它是其它所有事件模块的代理模块.nginx在启动时只与events模块打交道,而由even ... 
- mac下Nginx+lua模块编译安装
		Nginx的nb之处就不说了,lua也是一个小巧的脚本语言,由标准C编写而成,几乎可以运行在所有的平台上,也非常强大,其他特性请自行度娘.nginx_lua_module是由淘宝的工程师清无(王晓哲) ... 
- nginx添加模块  (非覆盖安装)
		nginx添加模块(非覆盖安装) 原已经安装好的nginx,现在需要添加一个未被编译安装的模块: 查看原来编译时都带了哪些参数# /usr/local/nginx/sbin/nginx -V ngin ... 
- 一些好用的nginx第三方模块
		一些好用的nginx第三方模块 转自;http://macken.iteye.com/blog/1963301 1.Development Kit https://github.com/simpl/ ... 
- nginx自定义模块编写-实时统计模块--转载
		原文:http://www.vimer.cn/2012/05/nginx%E8%87%AA%E5%AE%9A%E4%B9%89%E6%A8%A1%E5%9D%97%E7%BC%96%E5%86%99- ... 
- nginx -- handler模块(100%)
		handler模块简介 相信大家在看了前一章的模块概述以后,都对nginx的模块有了一个基本的认识.基本上作为第三方开发者最可能开发的就是三种类型的模块,即handler,filter和load-ba ... 
- Nginx Http模块开发
		关于Nginx Http模块开发的文章非常少,只有Emiler的那篇关于Http模块的文章,但是那篇文章里面,并没有说到事件型的模块如何进行开发.而且文章里面提到的内容实在是让人有点意犹未尽.因此,对 ... 
随机推荐
- 第一次OllyDbg逆向记录(分析思路和注意点&其他文章)
			OllyDbg 操作菜单栏.工具栏.快捷键 C++调用加强 目录 OllyDbg 操作菜单栏.工具栏.快捷键 1 一. 载入观察 1 1.静态载入观察: 1 2.OD动态观察 ... 
- openwrt mt7620 内存大小检测
			单独编译内核: make V=s target/linux/install 相调函数调用流程: init/main.c : start_kernel() -> setup_arch(&c ... 
- [a,s]=[22,3]
			[a,s]=[22,3] Object.assign() - JavaScript | MDN https://developer.mozilla.org/en-US/docs/Web/JavaScr ... 
- Android cookies正确的更新方式
			之前的更新方式 一搜cookies的使用,非常easy搜到非常多文章.主要的几步大致同样.例如以下图: 基本上都要求大家先调用cookieManager.removeAllCookie()或者调用 c ... 
- LIS n^2&nlogn模板
			LIS nlogn模板 http://acm.hdu.edu.cn/showproblem.php?pid=1950 #include <iostream> #include <st ... 
- 51nod 1600 Simple KMP
			又被机房神犇肉丝哥哥和glory踩爆了 首先这个答案的输出方式有点套路,当前的答案=上一个答案+每一个后缀的f值=上一个答案+上一次算的每个后缀的f值+当前每个后缀的深度 这个题意给了个根深度为-1有 ... 
- HDU3294 Girls' research —— Manacher算法 输出解
			题目链接:https://vjudge.net/problem/HDU-3294 Girls' research Time Limit: 3000/1000 MS (Java/Others) M ... 
- 从零开始徒手撸一个vue的toast弹窗组件
			相信普通的vue组件大家都会写,定义 -> 引入 -> 注册 -> 使用,行云流水,一气呵成,但是如果我们今天是要自定义一个弹窗组件呢? 首先,我们来分析一下弹窗组件的特性(需求): ... 
- MYSQL进阶学习笔记十二:MySQL 表分区!(视频序号:进阶_29,30)
			知识点十三:MySQL 表的分区(29) 一.什么要采用分区: 分区的定义: 当数据量过大的时候(通常是指百万级或千万级数据的时候),这时候需要将一张表划分几张表存储.一些查询可以得到极大的优化,这主 ... 
- iOS字符串的各种用法(字符串插入、字符串覆盖、字符串截取、分割字符串)
			NSString* str=@"hello";//存在代码区,不可变 NSLog(@"%@",str); //1.[字符串插入] NSMutableString ... 
