您现在的位置是:综合 >>正文

nginx和tomcat区别

综合4273人已围观

简介nginx和tomcat压根儿就不是一类东西,却总被放在一起比较。nginx是个web服务器,tomcat是个servlet容器。这就像拿货车和厨房比,虽然都能处理食材,但干的事儿完全两码事。 ngi ...

nginx和tomcat压根儿就不是区别一类东西,却总被放在一起比较。区别nginx是区别个web服务器,tomcat是区别个servlet容器。这就像拿货车和厨房比,区别虽然都能处理食材,区别但干的区别事儿完全两码事。

nginx最擅长的区别是处理静态资源。你访问一张图片、区别一个css文件、区别一段js脚本,区别nginx直接给你吐出来,区别速度极快,区别消耗的区别资源还特别少。它内部是区别事件驱动的异步架构,一个进程能扛住几万个并发连接。我见过一台普通配置的服务器,nginx单机撑住10万并发,cpu占用率才30%左右。这活儿要是交给tomcat,早崩了。

tomcat呢,核心功能是执行java代码。你写的servlet、jsp、spring mvc接口,都得靠它跑起来。它本质是个java进程,每个请求进来都要经过线程池分配、servlet实例化、业务逻辑执行、数据库交互这些环节。性能天花板就在那儿摆着,单机撑个几百并发就差不多了,再多就得横向扩展。

但现实项目里,这俩经常搭伙干活。nginx在前面顶着,把静态资源请求直接处理掉,把动态请求——也就是那些需要java处理的接口——通过反向代理转发给后端的tomcat集群。tomcat处理完,把结果返回给nginx,nginx再回给客户端。nginx在这里还顺便做了负载均衡,把请求分发到不同的tomcat实例上。

有个细节你可能没注意到,nginx处理请求是异步非阻塞的,tomcat传统的bio模式是同步阻塞的——每个请求占一个线程,线程池满了,后面的请求就得排队等着。后来tomcat也支持了nio模式,但骨子里还是java那套线程模型,跟nginx的事件驱动有本质区别。

配置方式也完全不同。nginx的配置文件是纯文本,写起来像在写脚本,改完直接reload就生效,不用重启进程。tomcat的配置文件是xml,server.xml、web.xml那一堆,改完多半得重启才能生效。运维上nginx比tomcat轻量得多,nginx安装包才1MB出头,tomcat解压下来几十MB。

我见过不少团队把nginx当tomcat用,硬要用nginx跑java代码,结果各种折腾,最后还得老老实实加个tomcat在后面。也见过有人把tomcat直接暴露在公网上,静态资源全让tomcat处理,并发一上来就卡死。这俩的正确用法是分工合作,不是二选一。

还有一点,nginx可以独立做反向代理、负载均衡、缓存服务,甚至当邮件代理用。tomcat离开java生态基本就没啥用武之地了。你要是搞纯java项目,tomcat是刚需,nginx是可选项。你要是搞前后端分离项目,nginx基本是标配,tomcat只负责后端接口。

一句话总结我的看法:nginx管流量,tomcat管业务。别指望一个工具干完所有事,把合适的工具用在合适的位置,比纠结谁更强重要得多。

Tags:

上一篇:标书制作

下一篇:电话贷款诈骗套路

相关文章

  • 美女电击翻白眼

    综合

    那天下午三点,我在城南一家电子维修铺子门口,亲眼看见一个姑娘被电击得翻白眼。 她蹲在路边修电瓶车,手里攥着两根裸露的铜线,大概是觉得断了电的线路没什么危险。旁边修车师傅老刘正蹲在台阶上抽烟,嘴里嘟囔着 ...

    【综合】

    阅读更多
  • 暗月网络安全培训官网

    综合

    暗月网络安全培训官网 body { font-family: "Segoe UI", "Microsoft YaHei", sans-serif; max-width: 780px; ma ...

    【综合】

    阅读更多
  • 常见黑帽

    综合

    黑帽SEO这行当,说白了就是跟搜索引擎玩猫鼠游戏。有人靠白帽慢慢熬,有人直接抄近道——抄近道的那些手段,我见过太多翻车的,也见过真金白银捞到手的。 最土但最有效的,是**站群**。早年Google对独 ...

    【综合】

    阅读更多


友情链接