回答
收藏
分享
举报
nginx 与tomcat、apache的区别是什么?
提问于2020-05-08 10:05

浏览 3.9k

已修改于2023-03-13 18:57



写下您的回答
发表回答
全部回答(2)

按点赞数排序

按时间排序

主要区别是性能:

1、从功能上三者有很多重叠,比如都可以实现静态资源、反向代理等功能。

2、从性能上,Nginx和Apache、Tomcat不是一个量级的,因此,你经常可以见到,Apache、Tomcat的下游,还部署着一台Nginx,由Nginx去处理客户端流量,包括:

  • 卸载掉TLS层

  • 对静态资源直接返回

  • 对过大的流量限速

  • 对不合法的流量拦截

  • 对上游流量则用水平扩展的方式分发流量,提升系统scalability

等等。

赞同

2

回复举报

回答于2020-06-11 09:48



回复陶辉
回复

1. Apache

Apache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上。其属于应用服务器。Apache支持支持模块多,性能稳定,Apache本身是静态解析,适合静态HTML、图片等,但可以通过扩展脚本、模块等支持动态页面等。

(Apche可以支持PHPcgiperl,但是要使用Java的话,你需要Tomcat在Apache后台支撑,将Java请求由Apache转发给Tomcat处理。)

缺点:配置相对复杂,自身不支持动态页面。

2. Tomcat:

Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。

3. Nginx

Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。

赞同

1

回复举报

回答于2020-05-08 10:25



回复qiang
回复
提问者
xixihaha
这家伙很懒还未留下介绍~
0
文章
2
问答
1
粉丝
相关问答

还有如下情况可以使用变量:

1, rewrite模块的rewrite指令。

2. echo 模块的echo 指令。

3。 可以自定义一些指令使用变量。

点赞 0
浏览 3.6k

可以试着打开debug日志,然后看日志中记录哪里处理时间较长

配置方法:error_log  /tmp/debug.log debug;

点赞 0
浏览 4.3k

301是要求跳转,按理应该是发给客户端来处理的,如果非要在nginx里处理可以用proxy_intercept_errors

点赞 0
浏览 3.2k