Nginx反向代理为什么可以提高网站性能?

2023-04-2506:51:02服务器及运维Comments932 views字数 628阅读模式

能够提高网站性能这点来说,当然是由于Nginx反向代理与负载均衡的超强优势啦。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/37126.html

与Apache Tomcat比起来,Nginx可以承受的qps要大得多,这里除了底层原理的差异,与Nginx不负责处理业务逻辑,只负责接受转发请求的特点有分不开的关系。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/37126.html

反向代理文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/37126.html

反向代理可以用于实现分布式,即对外虽然是一个完整的服务,但是其实这个服务对内是由部署在多台Tomcat的子服务共同组成的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/37126.html

举个例子,一个购物网站,分为查询商品,下单,结算三个模块(极简举例),如果这三个子服务都写在同一个Tomcat上,那么所有的请求就都会发给这一台Tomcat。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/37126.html

这样的部署有一个隐患:假设双十一之前,这个网站的压测没有做好,导致双十一当天0点的时候,结算的人太多,qps超过Tomcat可承受的上限,服务崩溃了,那么这时候,不仅是结算的人无法打开网页,连那些想查询商品,把商品放入购物车的用户也会发现打不开网页了。即此时这个网站的服务由于单个子服务的原因,全线崩溃了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/37126.html

如果使用反向代理功能,就能从两个方面来缓解这个隐患:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/37126.html

1 Nginx会将查询,下单与结算的请求分别发送给三个服务器,那么对于单独的服务器来说,瞬时间的请求量就会少很多,减少了挂掉的风险文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/37126.html

2 就算挂掉了,由于Tomcat是分开的,挂掉其中一个,另外两个依然可以运行,不影响用户其他操作。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/37126.html

因此,我们说,反向代理也是一种提升网站性能的方式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/37126.html

只不过,这里的网站指的其实是用户侧感知到的整体的服务,而不是具体的Tomcat server。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/yunwei/37126.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/yunwei/37126.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定