nginx实现http反向代理+负载均衡

原理
反向代理:反向代理(reverse proxy)方式是指以代理来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时对外就表现为一个反向代理服务器
以图中的例子来说nginx反向代理www.example.com (1)用户访问www.example.com时解析的ip是nginx的地址 (2,3)nginx根据代理协议去后端webserver取请求的内容 (4)再把得到内容返回给客户 对internet暴露的只有nginx 后端webserver完全是透明的
这里发生了两次路由 user->Nginx Nginx->Webserver
upstream是nginx中实现负载均衡的一个模块
配置
nginx配置(upstream)
一、定义upstream地址池
1、
upstream webserver {
server 192.168.1.2: weight= max_fails= fail_timeout=30s;
server 192.168.1.3: weight= max_fails= fail_timeout=30s;
}
2、upstream分配方式
rr 轮询 默认 weight(指定轮询几率,weight值和访问率成正比)
max_fails:server通信的失败次数
fail_timeout:fail_timeout时间段内,如果失败的通信次数大于指定的max_fails,则认为proxied server down,并持续fail_timeout定义的时间段
ip_hash(每个请求按访问的ip的hash结果分配 这样每个访问ip固定一台后端服务器 解决session问题)
fair(第三方)
url_hash(第三方)
二、proxy
1、
server
{
...(省略)
location ...(省略) {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://webserver;
}
}
2、配置说明
proxy_next_upstream nginx默认判断失败节点状态以connect refuse和time out状态为准 proxy_next_upstream加上其它状态值
proxy_set_header 自定义向后端webserver发送请求header的值 不指定请求头中的host值会被后端webserver第一条server_name配置(第一条server_name匹配规则) #虚拟主机
X-Real-IP 设置为最后一个代理服务器的ip
X-Forwarded-For 记录请求经过的所有代理服务器ip(包括客户端ip)
ps: 如果用户自定义http header中用含下划线的值(app_version_code) nginx默认不做转发
需要在http段设置 underscores_in_headers on;
参考:
http://saiyaren.iteye.com/blog/1914865
https://bbs.konotes.org/thread-7797-1-1.html
nginx实现http反向代理+负载均衡的更多相关文章
- nginx 详解反向代理负载均衡
什么是反向代理负载均衡 使用代理服务器可以将请求转发给内部的Web服务器,使用这种加速模式显然可以提升静态网页的访问速度.因此也可以考虑使用这种技术,让代理服务器将请求 均匀转发给多台内部Web服务器 ...
- Nginx特性验证-反向代理/负载均衡/页面缓存/URL重定向
原文发表于cu:2016-08-25 参考文档: Nginx 反向代理.负载均衡.页面缓存.URL重写等:http://freeloda.blog.51cto.com/2033581/1288553 ...
- nginx详解反向代理,负载均衡,LNMP架构上线动态网站
1.nginx介绍 nginx.org Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/ ...
- nginx 虚拟主机+反向代理+负载均衡
nginx是一款免费.开源的http服务器,它是由俄罗斯程序设计师开发的,官方测试,nginx能支撑5万的并发量,主要功能有虚拟主机.反向代理和负载均衡等. nginx配置 # 全局块 ... # e ...
- 如何使用Weave以及Docker搭建Nginx反向代理/负载均衡服务器
Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动 ...
- 项目实战2.2—nginx 反向代理负载均衡、动静分离和缓存的实现
实验一:实现反向代理负载均衡且动静分离 1.环境准备: 机器名称 IP配置 服务角色 备注 nginx VIP:172.17.11.11 反向代理服务器 开启代理功能 设置监控,调度 rs01 RIP ...
- Nginx 反向代理 负载均衡 虚拟主机配置
Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...
- Nginx 反向代理 负载均衡 虚拟主机
Nginx 反向代理 负载均衡 虚拟主机配置 通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常 ...
- 十.nginx反向代理负载均衡服务实践部署
期中集群架构-第十章-nginx反向代理负载均衡章节章节====================================================================== 0 ...
随机推荐
- U3D sorting layer, sort order, order in layer, layer深入辨析
1,layer是对游戏中所有物体的分类别划分,如UIlayer, waterlayer, 3DModelLayer, smallAssetsLayer, effectLayer等.将不同类的物体划分到 ...
- Qt中的qreal
在桌面操作系统中(比如Windows, XNix等)qreal其实就是double类型:而在嵌入设备系统中,qreal则等同于float 类型.
- 防止 JavaScript 自动插入分号
JavaScript语言有一个机制:在解析时,能够在一句话后面自动插入一个分号,用来修改语句末尾遗漏的分号分隔符. 然而,由于这个自动插入的分号与JavaScript语言的另一个机制发生了冲突,即所有 ...
- Javascript将构造函数扩展为简单工厂
一般而言,在Javascript中创建对象时需要使用关键字new(按构造函数去调用),但是某些时候,开发者希望无论new关键字有没有被显式使用,构造函数都可以被正常调用,即构造函数同时还具备简单工厂的 ...
- 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
具体的错误原因是:C#中的DateTime类型比SqlServer中的datetime范围大.SqlServer的datetime有效范围是1753年1月1日到9999年12月31日,如果超出这个范围 ...
- Jquery-EasyUI学习2~
下面这个Demo用的是MVC+Ado.Net.存储过程 实现功能:分页查询,添加.修改功能.模糊查询功能 先来几张效果图: 创建存储过程如下 go create proc usp_FenYe2 @se ...
- SharePoint 2013 安装图解
转自: http://www.cnblogs.com/jianyus/archive/2013/02/01/2889653.html 介绍:文章就是SharePoint2013安装过程的图解,包括步骤 ...
- 怎样设置Word下次打开时跳转到上次阅读的位置
①我们启动Word2013,打开需要阅读的文档,当阅读完毕之后,在指定位置键入一个空格,然后按下Delete键删除,这样相当于是没有作任何更改. ②保存文档,单击文件--另存为,选择好路径,将文档保存 ...
- exce生成随机数
有时候数据库没有数据,造数据专用. 来源于:http://jingyan.baidu.com/article/93f9803feba1f5e0e46f55f2.html 首先介绍一下如何用RAND() ...
- iOS开发小技巧--iOS8之后的cell自动计算高度
cell高度自动计算步骤: