Nginx异步代理四步解决相关问题

开发 前端
Nginx异步代理如何才能更好的使用相关服务呢?这就需要我们不断的学习有关的知识。希望我们不断在学习中有所收获。

一直以来Nginx异步代理都在为我们的服务器工作着,但是有不少的人还是有很多的问题。接下来我们就分四步解决有关的Nginx异步代理相关问题,希望大家有所帮助。

squid同步传输:浏览器发起请求,而后请求会立刻被转到后台,于是在浏览器和后台之间就建立了一个通道。在请求发起直到请求完成,这条通道都是一直存在的。Nginx异步传输:浏览器发起请求,请求不会立刻转到后台,而是将请求数据(header)先收到Nginx上,然后Nginx再把这个请求发到后端,后端处理完之后把数据返回到Nginx上,Nginx异步代理将数据流发到浏览器,这点和lighttpd有点不同,lighttpd是将后端数据完全接收后才发送到浏览器。那么这到底有什么好处呢?

1) 假设用户执行一个上传文件操作,因为用户网速又比较慢,因此需要花半个小时才能把文件传到服务器。squid的同步代理在用户开始上传后就和后台建立了连接,半小时后文件上传结束,由此可见,后台服务器连接保持了半个小时;而Nginx异步代理就是先将此文件收到Nginx上,因此仅仅是Nginx和用户保持了半小时连接,后台服务器在这半小时内没有为这个请求开启连接,半小时后用户上传结束,Nginx才将上传内容发到后台,Nginx和后台之间的带宽是很充裕的,所以只花了一秒钟就将请求发送到了后台,由此可见,后台服务器连接保持了一秒。同步传输花了后台服务器半个小时,异步传输只花一秒,可见优化程度很大。

2) 在上面这个例子中,假如后台服务器因为种种原因重启了,上传文件就自然中断了,这对用户来说是非常恼火的一件事情,想必各位也有上传文件传到一半被中断的经历。用NginxNginx异步代理之后,后台服务器的重启对用户上传的影响减少到了极点,而Nginx是非常稳定的并不需要常去重启它,即使需要重启,利用kill -HUP就可以做到不间断重启Nginx。

3) 异步传输可以令负载均衡器更有保障,为什么这么说呢?在其它的均衡器(lvs/haproxy/apache等)里,每个请求都是只有一次机会的,假如用户发起一个请求,结果该请求分到的后台服务器刚好挂掉了,那么这个请求就失败了;而Nginx因为是异步的,所以这个请求可以重新发往下一个后台,下一个后台返回了正常的数据,于是这个请求就能成功了。还是用用户上传文件这个例子,假如不但用了Nginx代理,而且用了负载均衡,Nginx异步代理把上传文件发往其中一台后台,但这台服务器突然重启了,Nginx收到错误后,会将这个上传文件发到另一台后台,于是用户就不用再花半小时上传一遍。

4) 假如用户上传一个10GB大小的文件,而后台服务器没有考虑到这个情况,那么后台服务器岂不要崩溃了。用Nginx就可以把这些东西都拦在Nginx上,通过Nginx的上传文件大小限制功能来限制,另外Nginx异步代理性能非常有保障,就放心的让互联网上那些另类的用户和Nginx对抗去吧。用异步传输会造成问题:后台服务器有提供上传进度的功能的话,用了Nginx异步代理就无法取得进度,这个需要使用Nginx的一个第三方模块来实现。

 

【编辑推荐】

  1. Nginx代理服务器中的文件整理系统
  2. Nginx负载均衡器如何实现自行共享
  3. Nginx Web服务器标准IP解决方案
  4. python编程在Nginx中的使用方法
  5. Nginx配置如何解决琐碎标签问题
责任编辑:张浩 来源: 互联网
相关推荐

2014-12-25 10:47:04

云智能代理自带智能苹果Siri

2021-07-26 09:35:26

SQL数据库优化

2021-11-23 23:43:16

MySQL数据库Docker

2010-06-13 14:19:40

学习UML

2010-04-28 12:02:37

Forefront网络优化

2010-09-06 11:58:39

ppp拨号Linux

2010-09-14 17:35:52

2010-06-12 13:49:16

学习UML

2017-04-17 12:31:45

SDN网络虚拟化

2010-11-19 15:44:04

IT跳槽

2010-04-20 10:12:05

2011-07-07 13:09:04

编程

2010-06-02 17:29:02

svnserve服务

2020-02-05 08:47:31

数据科学编程数据库

2013-07-15 14:30:44

产品经理

2013-03-18 11:03:48

云计算部署云计算CIO

2010-05-28 09:47:43

SVN项目创建

2011-03-11 09:22:12

2011-07-11 09:54:48

centos内核

2010-06-02 18:22:43

SVN本地设置
点赞
收藏

51CTO技术栈公众号