- 浏览: 447203 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (267)
- java (8)
- 求职&面试 (1)
- linux (33)
- windows (1)
- C++ (5)
- android (12)
- QT (1)
- 经验 (1)
- memory-leaks (1)
- Streaming&V/A (1)
- network&security (5)
- SCM (13)
- mysql (10)
- browsers (4)
- Windows APIs (2)
- opensource (1)
- pm (1)
- GDI (1)
- database (14)
- MFC (1)
- web&fronts (17)
- Tomcat (4)
- OLE (1)
- 观后感 (1)
- Production (2)
- UML (3)
- Javascript (7)
- Cloud Computing&SAAS (5)
- SoftwareEngineering (1)
- Computer&Maintenance (1)
- Web (8)
- Desgin (1)
- J2ee (10)
- mysql cluster (0)
- LB&HA (2)
- webserver (11)
- php (5)
- cas&authtication (0)
- Languages (1)
- IDEs (3)
- architecture (2)
- iOS (8)
- spring (3)
- webservices (1)
- security (1)
- MVCFrameworks (2)
- bservices (0)
- build-tools (2)
- unittest (1)
- spring-security (0)
- sphinx (2)
- hibernate (1)
- mybatis (2)
- search (0)
- nginx (2)
- design&production (2)
- DFS (0)
- algorithm (0)
- distributed&network (0)
- blogs (0)
- os&admin (0)
- fastcgi (0)
- kv-db (0)
- operation&maintenance (1)
- productions (9)
- 养生 (1)
- appserver (1)
- HTTP (2)
- test (1)
- erlang (2)
- browser (0)
- 非技术 (2)
- mobiles (2)
- cloud computing (2)
- Business (2)
- maven (1)
- python (5)
- 人生 (0)
- Cryptography (3)
- CV (0)
- cms (2)
- jqm (2)
- html (2)
- flex (1)
- redmine (1)
- iptables (1)
- groovy (1)
- scala (1)
- grails (1)
- ftp (3)
- vsftpd (2)
- lua (0)
- chroot (3)
- jailkit (3)
- UED (0)
- myeclipse (2)
- ide (2)
- eclipse (2)
最新评论
-
Nick712:
http://blog.csdn.net/victory08/ ...
处理SVN出现:Cleanup failed to process the following paths: xxx -
xs6262460:
Spring AOP根据JdbcTemplate方法名动态设置数据源 -
xhpscdx:
我的解决办法是把D:\ACRS\Projects\TAIS 下 ...
处理SVN出现:Cleanup failed to process the following paths: xxx -
hnraysir:
总结得相当不错,支持下。
使用CodeIgniter 创建 RESTful 服务 REST API【原创译文】 -
云上太阳:
这个必须评论下,间接的救过俺的命啊
解决tomcat启动报错,加强错误日志的显示:
反向代理从传输上分可以分为2种:
1:同步模式(apache-mod_proxy和squid)
2:异步模式(lighttpd 和 nginx)
在nginx的文档说明中,提到了异步传输模式并提到它可以减少后端连接数和压力,这是为何?
下面就来讲解下传统的代理(apache/squid)的同步传输和lighttpd,nginx的异步传输的差异。
看图:
同步传输:浏览器发起请求,而后请求会立刻被转到后台,于是在浏览器和后台之间就建立了一个通道。在请求发起直到请求完成,这条通道都是一直存在的。
异步传输:浏览器发起请求,请求不会立刻转到后台,而是将请求数据(header)先收到nginx上,然后nginx再把这个请求发到后端,后端处理完之后把数据返回到nginx上,nginx将数据流发到浏览器,这点和lighttpd有点不同,lighttpd是将后端数据完全接收后才发送到浏览器。
小结:apache和squid的反向会增加后端web的负担,因为每个用户请求都会在proxy上与后端server建立的长久链接,知道数据取完前,连接都不会消失。因为wan速度与lan速度的不同,虽然lan之间的速度是极度快的,但是用户的wan连接决定了这个时间长。而lighttpd和nginx的异步模式,是不管你用户要求的数据有多大,都是先收下来,再与后端联系,这是非常迅速的速度,所以proxy与后端连接时间也会很短,几十M的东西也是几秒内。后端不需要维护这么多连接。而lighttpd也和nginx不同的异步,lighttpd是先收完再转向客户浏览器,而nginx是边收数据边转向用户浏览器。
那么这到底有什么好处呢?
1. 假设用户执行一个上传文件操作,因为用户网速又比较慢,因此需要花半个小时才能把文件传到服务器。squid的同步代理在用户开始上传后就和后台建立了连接,半小时后文件上传结束,由此可见,后台服务器连接保持了半个小时;而nginx异步代理就是先将此文件收到nginx上,因此仅仅是nginx和用户保持了半小时连接,后台服务器在这半小时内没有为这个请求开启连接,半小时后用户上传结束,nginx才将上传内容发到后台,nginx和后台之间的带宽是很充裕的,所以只花了一秒钟就将请求发送到了后台,由此可见,后台服务器连接保持了一秒。同步传输花了后台服务器半个小时,异步传输只花一秒,可见优化程度很大。
2. 在上面这个例子中,假如后台服务器因为种种原因重启了,上传文件就自然中断了,这对用户来说是非常恼火的一件事情,想必各位也有上传文件传到一半被中断的经历。用nginx代理之后,后台服务器的重启对用户上传的影响减少到了极点,而nginx是非常稳定的并不需要常去重启它,即使需要重启,利用kill -HUP就可以做到不间断重启nginx。
3. 异步传输可以令负载均衡器更有保障,为什么这么说呢?在其它的均衡器(lvs/haproxy/apache等)里,每个请求都是只有一次机会的,假如用户发起一个请求,结果该请求分到的后台服务器刚好挂掉了,那么这个请求就失败了;而nginx因为是异步的,所以这个请求可以重新发往下一个后台,下一个后台返回了正常的数据,于是这个请求就能成功了。还是用用户上传文件这个例子,假如不但用了nginx代理,而且用了负载均衡,nginx把上传文件发往其中一台后台,但这台服务器突然重启了,nginx收到错误后,会将这个上传文件发到另一台后台,于是用户就不用再花半小时上传一遍。
4. 假如用户上传一个10GB大小的文件,而后台服务器没有考虑到这个情况,那么后台服务器岂不要崩溃了。用nginx就可以把这些东西都拦在nginx上,通过nginx的上传文件大小限制功能来限制,另外nginx性能非常有保障,就放心的让互联网上那些另类的用户和nginx对抗去吧。
用异步传输会造成问题:
后台服务器有提供上传进度的功能的话,用了nginx代理就无法取得进度,这个需要使用nginx的一个第三方模块来实现。
发表评论
-
说说大型高并发高负载网站的系统架构(更新)
2012-09-05 01:04 0说说大型高并发高 ... -
JAX-RS @QueryParam Example
2012-09-04 11:58 984JAX-RS @QueryParam Example ... -
REST 风格的 Web 服务入门指南
2012-09-04 10:53 0REST 风格的 Web 服务入门 ... -
REST总结
2012-09-04 10:49 0REST总结 目录 ... -
REST
2012-09-04 10:47 01、“无状态服务器”约束 REST 的 ... -
RESTful Web服务非常简单
2012-09-04 10:07 0很多Java开发人员都对学习基本的RESTful web ... -
Jersey1.8在spring环境下的实现 包括实例代码
2012-09-04 10:06 0Jersey1.8在spring环境 ... -
CXF、Restlet、RESTEasy、Jersey对比
2012-08-28 17:21 1160CXF、Restlet、RESTEasy、Jersey对 ... -
JSR311让Restful WebService变简单
2012-08-24 23:47 1165需求 公司有一个 ... -
Java REST框架一览
2012-08-24 23:42 1364目前宣称支持REST的Java框架包括以下这些: Restle ... -
Java下RESTful WebService的实现框架介绍
2012-08-24 23:39 6093Java下RESTful WebService的实现 ... -
比较JSF、Spring MVC、Stripes、Struts 2、Tapestry、Wicket
2012-08-22 10:28 996Java Web层 ... -
应用Apache Axis2 实现Webservice发布
2012-08-09 14:32 2844应用Apache Axis2 实现Webservic ... -
天涯bbs系统架构分析
2012-08-08 21:59 0天涯bbs系统架构分析 研究,就先从入口开始。天涯所 ... -
服务器系统架构分析日志
2012-08-08 21:57 0sudone.com 服务器系统架构分析日志 ...
相关推荐
3. **软件选型**:广泛采用开源技术,如LAMP(Linux、Apache、MySQL、PHP)堆栈,Java、Memcached缓存、ACE/ICE框架、Squid/Lighttpd/Nginx反向代理、ImageMagick图像处理。对于Web开发框架,如Struts、Spring的MVC...
- **Lighttpd+Squid+Apache**:结合轻量级Web服务器Lighttpd、代理缓存服务器Squid以及功能全面的Apache,可以构建出既能高效处理静态内容又能灵活应对动态请求的Web服务器。这种配置尤其适合大流量网站,能够有效...
面试中可能会询问Squid缓存服务器的配置与管理,Nginx和Lighttpd的反向代理、负载均衡设置,Memcached的使用场景,以及邮件服务器的搭建和维护。同时,负载均衡软件如HAProxy和Nginx的负载分发策略也是考察重点。 ...
8. **相关经验**:Squid缓存服务器、Nginx/Lighttpd等Web服务器、Memcached缓存服务、负载均衡和分布式文件处理等,这些都是运维工程师应掌握的关键技术。 9. **DNS解析**:DNS使用53端口,正向解析将域名转换为IP...
3. **软件选型**:通常基于LAMP(Linux、Apache、MySQL、PHP)或Java平台,并结合Memcached、ACE/ICE、Squid/Lighttpd/Nginx等工具进行优化,同时,图像处理软件如ImageMagick也常被用于内容处理。 4. **前端架构**...
Squid作为反向代理和缓存服务器,能加速内容的访问;而Apache则可以用于处理动态请求,提供更丰富的模块支持。 在配置这些服务器时,例如Apache的配置中,`APACHE2_OPTS="-D PYTHON -D XSLT -D PHP5"`表示启用...
在构建大流量服务器集群时,Varnish通常与其他组件如Nginx(作为反向代理和负载均衡器)、PHP(处理动态内容)、MySQL(数据库存储)以及Memcached(分布式内存缓存)等共同工作,形成高效的Web服务架构。...
- **Lighttpd + Squid + Apache**:这种组合能够提供高效的Web服务,并且Squid作为反向代理可以有效减轻后端服务器的压力。 - **Memcached**:广泛应用于各种Web应用中作为缓存层,可以显著提高数据访问速度。 - **...