服务器概念
前面咱先聊聊服务器的概念,相信很多小伙伴对服务器概念很模糊(博主也是)
服务器:就是一台性能稳定一些、扩展性比普通个人PC更强的机器而已(不要想的太复杂),也需要搭载操作系统。
服务器软件:运行在服务器操作系统上、绑定了服务器特定的IP地址,并且在某个端口监听用户请求,提供服务的软件。
静态服务:访问得到的是静态资源,不同用户、无论何时,只要访问同个服务,拿到的内容都一样……
动态服务:访问返回动态资源,需要单独“应用服务器”的承载,部署起来更加复杂。
web服务器:提供web化服务(如:网站页面服务、邮件服务等等等等),响应用户请求、提供服务,当下的所有服务器软件都可以成为web服务器
Http服务器:由于当今web服务器应用层通讯协议主要就是HTTP协议,所以基本上可以理解为:Http服务器=web服务器
应用服务器:特定应用的承载容器,一般的,需要有运行时环境的支持,如Tomcat,因此,它们又被称为:动态服务器、动态容器、应用服务器、web容器等。
常用轻量级应用服务器软件
1、NGinx
典型的http服务器。
本职工作是:将服务端的静态内容或资源通过Http协议传输给客户端。
典型功能:反向代理、负载均衡。
Nginx服务器性能特别好,稳定性高,扛得住冲击,一般放到最前面直面用户请求的冲击。当然,它可在lua
脚本等辅助下,做二次开发,编程可提供动态服务的应用服务器(原来是提供静态服务,二次开发后可提供动态服务)。
2、Tengin
阿里旗下,最先由淘宝发起,性能、稳定性很好。
基于Nginx做了改造,加强和封装,针对大流量网站,并且添加了很多高级功能和特性。
3、Apache
Apache Http Server。
Apache软件组织旗下的一个Http服务器项目。
从功能上来说,也是和Nginx服务器对等,但Nginx性能好一些。
4、IIS
微软阵营的一个web服务器,只能运行在windows下,并不是开源的。
主要身份:Http静态服务器。
由于支持ASP.NET这种类似环境的应用,因此也可作为应用服务器来用。
5、Tomcat
Spring Boot默认的应用容器
大名鼎鼎的Tomcat,和上面的Apache Http Server一样,都是隶属Apache软件组织旗下的子项目。
Tomcat是典型的java应用服务器软件,需运行时环境支持。
Tomcat是仅仅一个支持Servlet标准的javaEE应用容器,主要用途也是做javaEE应用服务器
6、Jetty
Spring Boot支持的应用容器
和Tomcat是一个性质的东西,它是一个开源的Http服务器+应用容器(既可以提供静态服务,又可提供动态服务)。
不仅如此,还提供了Http2、websocket、JMX等许多其他继承的这种支持。
Jetty和Tomcat几乎对等,都符合Servlet标准,只是Jetty更轻量些、配置上简单一些。
7、Undertow
Spring Boot支持的应用容器
Red Hat(红帽子公司)的一款基于java语言编写的应用容器,符合Servlet标准规范。
在并发量不高的情况下,Undertow与Jetty、Tomcat 的性能区别不大,但在并发量高时,Undertow更是优于两者。
常用重量级应用服务器
1、JBoss
由 Red Hat(红帽子公司)开发维护。
JavaEE 服务器,不仅仅是所谓的 Servlet应用容器,还是EJB应用容器,早年时代非常火。
从版本8 开始更名为 widfly。
2、Weblogic
Oracle 公司出品。
用于部署“企业级应用”的应用服务器,可以说是全能型的重量级的应用服务器软件,因为它支持 JavaEE 几乎所有的规范(Servlet、EJB、JMS…)。
它是个商业软件,有强大的商业化和周边组件的支持。
3、Websphere
IBM公司出品。
应用服务器软件,功能强大,有着IBM的开发工具配套,价格不菲的商业应用服务器。
它也是支持更多javaEE 应用规范的综合应用服务器,可靠性高、体量更大、性能好、功能全。
这么多是不是觉得眼花缭乱?哈哈哈
最后:一只好猿是不会白嫖的是吧?(疯狂暗示)