nginx ------反向代理和负载均衡
最近由于公司的业务增长 服务器承受不住压力经常出现崩溃现象 为了解决 使用nginx的负载均衡解决,以下是操作步骤:
1.nginx 的负载均衡:将压力分散到不同的机器上
nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态、静态页面的分离,可以按照轮询、ip哈希、URL哈希、权重等多种方式对后端服务器做负载均衡,同时还支持后端服务器的健康检查
2.nginx负载均衡配置:
修改配置文件中的proxy_pass和添加upstream
upstream www.test.com
{
server 192.168.1.1:;
server 192.168.1.2:;
} server
{
listen ;
server_name blog.test.com wode.test.com; location / {
proxy_pass http://www.test.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
nginx 的 upstream目前支持 4 种方式的分配 
  1)、轮询(默认) 
    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 
  2)、weight 
    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 
  2)、ip_hash 
    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。  
  3)、fair(第三方) 
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。  
  4)、url_hash(第三方)
3.nginx多台机器session共享
   ip_hash
    nginx中的ip_hash技术能够将某个ip的请求定向到同一台后端,这个ip下的某个客户端和某个后端就能建立起稳固的session,ip_hash是在upstream配置中定义的:
 upstream backend {
      server 127.0.0.1:;
      server 127.0.0.1:;
      ip_hash;
    }
  1)ip_hash缺陷:
    nginx不是最前端的服务器,ip_hash要求nginx一定是最前端的服务器,否则nginx得不到正确ip,就不能根据ip作hash;如使用的是squid为最前端,那么nginx取ip时只能得到squid的服务器ip地址,用这个地址来作分流是肯定错乱的
    nginx的后端其它方式的负载均衡:将请求通过另外的方式分流,那么某个客户端的请求肯定不能定位到同一台session应用服务器上,nginx后端只能直接指向应用服务器,或者再搭一个squid,然后指向应用服务器;
    最好的办法是用location作一次分流,将需要session的部分请求通过ip_hash分流,剩下的走其它后端去
  2)upstream_hash 第三方模块
  这个模块多数情况下是用作url_hash的,但是并不妨碍将它用来做session共享,如前端是squid,它会将ip加入x_forwarded_for这个http_header里,用upstream_hash可以用这个头做因子,将请求定向到指定的后端;
nginx ------反向代理和负载均衡的更多相关文章
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
		相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ... 
- nginx反向代理与负载均衡
		一:nginx反向代理与负载均衡配置思路与用法 1.nginx反向代理:就是你去相亲时,媒婆就是这里的代理,让媒婆带你去见姑娘 2.nginx负载均衡:就是有很多的媒婆经过商量给你选出最适合你的姑娘, ... 
- 【转】Nginx反向代理和负载均衡
		原文链接:http://www.cnblogs.com/shuoer/p/7820899.html Nginx反向代理和负载均衡 环境说明 由于我使用的是windows系统,所以我用虚拟机虚拟出来了3 ... 
- 谁说前端不需要懂-Nginx反向代理与负载均衡
		转:https://juejin.im/post/5b01336af265da0b8a67e5c9 学到老活到老 前端圈一直很新,一直要不停的学习,而且在进入大厂的路上,还要求熟悉一门后台语言等等.用 ... 
- [转]Nginx反向代理和负载均衡部署指南
		Nginx反向代理和负载均衡部署指南 1. 安装 1) 从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最 ... 
- 基于Nginx反向代理及负载均衡
		基于Nginx反向代理及负载均衡 参考:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass 只要没有被启用,默认就是 ... 
- 使用nginx反向代理进行负载均衡
		在这里简单记录一下,我使用Nginx反向代理进行负载均衡,将请求发送到两台tomcat上. 首先解压两个tomcat,解压Nginx,一台tomcat配置可以不用动,但是我为了更方便只是将它的端口改为 ... 
- (二)Nginx反向代理与负载均衡的实现
		引言:nginx正向代理与反向代理在上一篇文章中已经谈论过,这里狗尾草主要告诉大家Nginx对前端的小伙伴来说在工作中如何简单的使用. 1.0什么是反向代理 当我们有一个服务器集群,并且服务器集群中的 ... 
- Nginx反向代理、负载均衡及日志
		Nginx反向代理.负载均衡及日志 1.原理图 2.正向代理与反向代理 (1)代理服务器 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后 ... 
- Nginx反向代理与负载均衡应用实践(二)
		Nginx反向代理与负载均衡应用实践(二) 链接:https://pan.baidu.com/s/1xB20bnuanh0Avs4kwRpSXQ 提取码:migq 复制这段内容后打开百度网盘手机App ... 
随机推荐
- h5手机点击返回键,刷新页面
			在js中,加上一下代码: window.onpageshow = function(event) {if (event.persisted) {window.location.reload();}}; 
- 一月分四周的JAVA实现方法
			需求:给定任意一个月,如何按照中国周的习惯,把一个月分成四个时间段 (1)以自然周为划分依据 (2)不能跨月 (3)把首尾自然周,天数较少的合并到其最近的自然周里面 (4)最后结果应该是吧一个月分成四 ... 
- DisplayLink 安装错误
			根据 在官网论坛上的反馈结果,程序自己有验证数字签名,数字签名验证不通过,即如上图所示.可能的原因:病毒:下载不完全:证书链出问题 
- react native 开发报错
			1:oc对象名是RCTPoctalk 2:js中导入原生方法 3:报错:对象没有定义 出现这样的问题可能是react native 不允许使用“RCT”开头的前缀 4:解决办法:“RCT_EXPORT ... 
- python day21 ——面向对像-反射 getattr,内置方法
			一.反射:用字符串数据类型的变量名来访问这个变量的值 上代码^_^ # class Student: # ROLE = 'STUDENT' # @classmethod # def check_cou ... 
- 3.python集合
			1.集合1.不同元素组成2.无序排列的可hash值3.集合中元素必须是不可变类型(数字,字符串,元祖) 2.集合创建:(1)定义可变类型集合set:把里面元素一个一个进行for循环往大括号里放 set ... 
- PythonStudy——三元表达式  Ternary expression
			Python中的三目运算其实就是if...else...的语法糖 # 三目运算符:用于简化 if...else...的语法结构# -- 1) 只能解决if...else...结构,其他if分支结构都不 ... 
- Keepalived+LVS实现高可用负载均衡双主模式
			LVS是一种集群(Cluster)技术:采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一 ... 
- because there was insufficient free space available after evicting expired cache entries
			Tomcat运行的时候哗哗哗的报警告 版本是Tomcat 8.5.15 告警信息关键字如下 because there was insufficient free space available af ... 
- Docker之 默认桥接网络与自定义桥接网卡
			docker引擎会默认创建一个docker0网桥,它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和宿主机都放到同一个二层网络. 1. docker如何使用网桥 1.1 Linux虚拟网桥的特点 ... 
