最近接触到一些不常用的服务端应用软件, 正好值此之际简单整理一番
应用服务软件梳理
什么是应用服务软件
运行在服务器之上, 可以通过监听特定的端口, 响应用户请求对外提供服务的软件
根据内容进行的服务分类
1. 静态服务
- 通常访问的都是静态资源, 不同用户在不同时间获取到的都是相同的内容
- 生成固定的HTML页面, 可以直接托管在github上, 例如Hexo, Hugo
2. 动态服务
- 支持动态响应, 返回动态资源, 根据用户的身份权限等区别返回不同的内容和资源
- 需要有对应的应用服务器进行承载, 例如Halo或WordPress
根据场景进行的服务分类
1. web服务
- 提供web化服务, 例如页面服务/邮件服务/下载服务等
2. http服务
- 侧重于采用的是http网络协议将用户请求传输给后端, 因为现今大部分web服务器都采用的http协议, 所以http服务器在大部分情况下是和web服务器对等的
3. 应用服务
- 一个特定应用的承载容器, 需要运行时环境的支持
常用服务器端服务软件
NGINX
- 开源的静态http服务软件, 主要用于反向代理/负载均衡/流量转发等
- 因其性能强, 稳定性高, 所以常用于和动态服务组合使用, 作为直面用户请求的服务提供灵活稳定的web服务
Apache http server
- 主要用于静态服务, 在性能和资源消耗上的表现弱于NGINX, 因此使用量更低
IIS
- 微软旗下的Windows系统的应用服务软件, 支持ASP.NET
Tomcat
- 最常用的Java应用服务软件, 提供动态服务, 需要Java运行时环境支持
- Spring Boot直接内嵌Tomcat作为默认应用容器(应用服务)
- 虽然Tomcat也可以直接提供动态服务, 但除非流量不大的情况, Tomcat在实际场景中很少使用Tomcat直面用户, 而是会放置在NGINX等http服务后面
Jetty/Undertow
- 功能和Tomcat相当, 相对Tomcat来说会更加轻量简单, 也作为Spring的应用容器选项之一
JBoss/Wildfly
- RedHat开发的平台级应用服务软件, 可以部署动态应用, 除了作为Java动态应用服务软件, 更倾向于提供整套J2EE解决方案, 比起前面几种服务软件来说属于重量级的应用服务平台
WebLogic
- Oracle出品的企业级Java应用的应用服务软件, 支持基本所有的Java功能, 作为一个商业软件提供了完整的组件.
WebSphere
- IBM公司出品的企业级Java应用的应用服务软件, 功能强大可以和IBM的开发工具配套使用, 使用价格较高