tomcat是j2ee服务器,可以运行java程序,处理用户的请求。 nginx/apache都是转发的工具。它们可以把请求转发到多个tomcat服务器上,实现tomcat服务器的负载均衡 和 建立安全区。外部攻击最多攻击到nginx/apache的服务器上,而不会攻击到tomcat服务器上(tomcat服务器往往与内部数据库相关联)
第一、Nginx和Tomcat的区别
Nginx主要用作静态内容服务和代理服务器,直接将外来的请求转发给后面的应用服务器;Tomcat更像是一个应用容器。
第二、nginx和Apache的区别
Apache是同步多进程模型,是可以一个连接对应一个进程,而nginx属于一步的,多个连接可以对应一个进程。
Nginx轻量级,抗并发,处理静态文件好;Apache稳定性好,对PHP支持比较简单,nginx还需要配合其他后端进行使用,处理动态请求上更有优势。
建议使用前端nginx抗并发,后端Apache集群,配合起来效果会更好。
第三、Tomcat和Apache的区别
Apache由C语言实现,支持各种特性和模块从而来扩展核心功能;Tomcat是Java实现的,可以更好地支持servlet和jsp。
Apache也是普通的服务器,本身只支持HTML静态普遍网页,不过可以通过插件来支持PHP等;Tomcat是jsp/servlet容器,支持HTML、jsp、asp、PHP、CGI等。
Apache侧重于http server,Tomcat侧重于servlet引擎。
综合情况来讲,各有各的特点和优势,可以根据自己的实际需求来选择。