IIS、Apache、Tomcat、Nginx、CDN,它们之间有何区别?( 二 )


文章插图
Web Server中文名称叫网页服务器或web服务器 。WEB服务器也称为WWW(WORLD WIDE WEB)服务器 。主要功能是提供网上信息浏览服务IIS
IIS是微软公司的Web服务器 。主要支持ASP语言环境 。对于中小企业来说建立自己的网站 。对外展示自己的页面是最平常不过的事情了 。目前最流行的建立WWW服务工具就要属Apache与IIS了 。IIS只能在微软公司的windows操作系统下使用 。离开了windows他将一事无成 。无法移植到其他类型的操作系统中 。
Tomcat
java里面一个web容器 。就是一个http请求来了 。它帮你接受 。可能再对请求做些处理 。然后拉起你controller的代码 。把请求传进去 。最后当controller处理结束后 。再把请求简单处理一下返回给请求者 。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器 。属于轻量级应用服务器 。在中小型系统和并发访问用户不是很多的场合下被普遍使用 。是开发和调试JSP 程序的首选 。对于一个初学者来说 。可以这样认为 。当在一台机器上配置好Apache 服务器 。可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求 。实际上Tomcat 部分是Apache 服务器的扩展 。但它是独立运行的 。所以当你运行tomcat 时 。它实际上作为一个与Apache 独立的进程单独运行的 。
CDN
中文叫内容分发网络 。都是云服务商在运营 。它可以让你的用户在访问资源的时候就近访问 。提高静态资源的访问速度 。
这些都是不同的东西 。不过都是概念上的 。功能上有一定的重叠 。不过在使用中基本都是不同的东西 。
一般生产上iis 。nginx 。apache都是当反向代理用 。少数情况会当静态文件服务器用 。tomcat 。无论何时都是web容器 。cdn一般只在生产上用 。主要是提供静态文件服务 。
至于他们的实现 。理论上讲用什么语言否没问题 。不管是java node还是啥的 。不过有现成的 。应该没人会造新的 。
Apache
Apache是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页. 但asp,php,cgi,jsp等动态网页的就不行. 如果要在APACHE环境下运行jsp 的话就需要一个解释器来执行jsp网页, 而这个jsp解释器就是TOMCAT, 为什么还要JDK呢?因为jsp需要连接数据库的话就要jdk来提供连接数据库的驱程 。所以要运行jsp的web服务器平台就需要APACHE+TOMCAT+JDK 整合的好处是:如果客户端请求的是静态页面 。则只需要Apache服务器响应请求如果客户端请求动态页面 。则是Tomcat服务器响应请求因为jsp是服务器端解释代码的 。这样整合就可以减少Tomcat的服务开销 。
apache是web服务器 。tomcat是应用(java)服务器 。它只是一个servlet(jsp也翻译成servlet)容器 。可以认为是apache的扩展 。
Apache:普通服务器 。本身只支持html即普通网页,它是html容器 。功能像IIS一样
tomcat:解释java程序(jsp,serverlet) 。它是是jsp/servlet容器 。用于发布JSP及JAVA的
apache是一辆卡车 。上面可以装一些东西如html等 。但是不能装水 。要装水必须要有容器(桶) 。tomcat就是一个桶(装像JAVA这样的水) 。而这个桶也可以不放在卡车上 。
诀窍是 。当配置正确时 。Apache 为HTML页面服务 。而Tomcat 实际上运行JSP 页面和Servlet 。另外 。Tomcat和IIS等Web服务器一样 。具有处理HTML页面的功能 。另外它还是一个Servlet和JSP容器 。独立的Servlet容器是Tomcat的默认模式 。不过 。Tomcat处理静态HTML的能力不如Apache服务器 。目前Tomcat最新版本为9.0 。
Nginx
Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx 。它的发音为“engine X” 。是一个高性能的HTTP和反向代理服务器 。同时也是一个IMAP/POP3/SMTP 代理服务器 。
nginx相对于apache的优点
轻量级 。同样起web 服务 。比apache占用更少的内存及资源
抗并发 。nginx 处理请求是异步非阻塞的 。而apache 则是阻塞型的 。在高并发下nginx 能保持低资源低消耗高性能
高度模块化的设计 。编写模块相对简单
提供负载均衡
社区活跃 。各种高性能模块出品迅速
总结
Nginx优点:负载均衡、反向代理、处理静态文件优势 。nginx处理静态请求的速度高于Apache优点:相对于Tomcat服务器来说处理静态文件是它的优势 。速度快 。Apache是静态解析 。适合静态HTML、图片等 。
Tomcat:动态解析容器 。处理动态请求 。是编译JSP\Servlet的容器 。Nginx有动态分离机制 。静态请求直接就可以通过Nginx处理 。动态请求才转发请求到后台交由Tomcat进行处理 。