资讯专栏INFORMATION COLUMN

为什么有Nginx+Apache+Tomcat这种架构

cppprimer / 818人阅读

摘要:而且在负载上面远超,为什么目前大多数的互联网公司都是使用这种架构模式,而不是直接,这样不是架构更加方便,而且性能更佳优异嘛。其特点是占有内存少,并发能力强。

最近有人问我,Nginx有动态分离机制,静态请求直接就可以通过Nginx处理,动态请求才转发请求到后台交由Tomcat进行处理。而且Nginx在负载上面远超Apache,为什么目前大多数的互联网公司都是使用Nginx+Apache+Tomcat这种架构模式,而不是直接Nginx+Tomcat,这样不是架构更加方便,而且性能更佳优异嘛。
我觉得这个问题非常有意思,也去问了一些人,有人说应该是以前公司使用Apache+php习惯了,然后nginx出现以后不敢轻易更改架构,所以在前面加一层Nginx反向代理。其实
提出这种问题的人,一定是没有自己搭建过高负载站点,也根本没有仔细了解过Nginx和Apache之间究竟有什么区别。

Web服务器介绍

Nginx
Nginx ("engine x") 是一个高性能的HTTP和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器。其特点是占有内存少,并发能力强。

Nginx为什么能够载同样的硬件下做到更高的负载,就在于其成熟的事件驱动框架,和事件调度机制,异步的方式能够更好更快速的处理请求,这点和Node.JS倒是很相近。

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。

原因

请注意上面Apache的解释,它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。这就是为什么要有Apache的原因,由于Web服务器本身是没有动态语言处理能力的,所以Nginx要使用PHP、JAVA这种动态语言的时候,就必须要有应用程序服务器来处理,而Apache本身能过直接加载php.so动态库,能够自行处理php语言的解释和运行,或者说整合Tomcat,而nginx就只能遵循FASTCGI协议,将所有的用户请求转发给后端cgi服务器,所以在同样的请求下,性能无法和Apache媲美。所以就有了这样一个神奇的架构,Apache组成后端集群,Nginx作为反向代理的前端,即使一个集群挂掉了,照样能过平衡负载。
而且在现代的架构设计里面,静态文件等资源都是被放到CDN的,也就是说,和业务集群毫无关系,又或者说直接就是存在一个Nginx集群来搞定这一切,这样就能够最大限度的在速度、并发负载、性能上面找到一个平衡点。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39209.html

相关文章

  • 什么NginxApacheTomcat这种架构

    摘要:而且在负载上面远超,为什么目前大多数的互联网公司都是使用这种架构模式,而不是直接,这样不是架构更加方便,而且性能更佳优异嘛。其特点是占有内存少,并发能力强。 最近有人问我,Nginx有动态分离机制,静态请求直接就可以通过Nginx处理,动态请求才转发请求到后台交由Tomcat进行处理。而且Nginx在负载上面远超Apache,为什么目前大多数的互联网公司都是使用Nginx+Apache...

    sihai 评论0 收藏0
  • 什么NginxApacheTomcat这种架构

    摘要:而且在负载上面远超,为什么目前大多数的互联网公司都是使用这种架构模式,而不是直接,这样不是架构更加方便,而且性能更佳优异嘛。其特点是占有内存少,并发能力强。 最近有人问我,Nginx有动态分离机制,静态请求直接就可以通过Nginx处理,动态请求才转发请求到后台交由Tomcat进行处理。而且Nginx在负载上面远超Apache,为什么目前大多数的互联网公司都是使用Nginx+Apache...

    XanaHopper 评论0 收藏0
  • Nginx 极简入门教程!

    上篇文章和大家聊了 Spring Session 实现 Session 共享的问题,有的小伙伴看了后表示对 Nginx 还是很懵,因此有了这篇文章,算是一个 Nginx 扫盲入门吧! 基本介绍 Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。 Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点开发...

    _DangJin 评论0 收藏0
  • Linux云计算高端架构师+DevOps高级虚拟化高级进阶视频

    摘要:课程大纲开班典礼开班典礼开班典礼操作系统系统安装及启动流程操作系统系统安装及启动流程必备命令讲解必备命令讲解必备命令讲解及系统启动流程必备命令讲解及系统启动流程启动流程和用户及用户组讲解启动流程和用户及用户组讲解用户权限讲解及编辑器用户权限 课程大纲1.开班典礼(1)_rec.mp42.开班典礼(2)_rec.mp43.开班典礼(3)_rec.flv4.Linux操作系统系统安装及启动...

    Cheng_Gang 评论0 收藏0
  • Spring Cloud Alibaba基础教程:Nacos的集群部署

    摘要:通过本文,我们将完成生产环境的搭建。第二步修改文件,增加支持数据源配置,添加目前只支持数据源的用户名和密码。另外,的集群需要个或个以上的节点,并且确保这三个节点之间是可以互相访问的。也可以故意的关闭某个实例,来验证集群是否还能正常服务。 前情回顾: 《Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现》 《Spring Cloud Alibaba基础教...

    elarity 评论0 收藏0

发表评论

0条评论

cppprimer

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<