先说一句哈,自打在 B 站逐渐刷视频后,我就觉得要学的内容真是太多了。这篇文章“服务器手机软件大普及”便是我看了羊哥的一期视频后感慨万千的,例如 Web 服务器、HTTP 服务器、运用服务器这三个定义,我就是见过很多次,但如果你非要我讲出它们之间的区别得话,我只好无言以对。
也有,自己用过的 Tomcat、Nginx、Apache、Jetty、Undertow,它们之间有哪些优点和缺点,嗯……再次无言以对。很有可能有很多小伙伴和我一样,使用过,但具体的差别还真的说不出来,所以你准备借这个机会来和大家一起学习下。
(我是学习委员,自豪)
先而言 Web 服务器,它一般是指网址服务器,可以向电脑浏览器(PC端或是手机端)等 Web 手机客户端提供帮助,供请求数据或是下载数据。服务器应用 HTTP (动态网页传输协议)和手机客户端电脑浏览器开展通讯,因此我们也把 Web 服务器称做为 HTTP 服务器。
再来说运用服务器,它是一种软件框架,提供一个运用程序执行的生活环境。一般用来为程序给予安全性、数据信息、事务管理适用、负载均衡大中型分布式架构管理等服务项目。
我认为,Web 服务器和应用服务器间的界线已经非常模糊不清,后面一种更好一点,就像公司与企业这俩专有名词之间的差别。
比较常见的 Web 服务器软件包括 Nginx、Apache、IIS,比较常见的运用服务器软件包括 WebLogic、JBoss,前面一种更轻量,后面一种更超重量级。
下面,我们就来唠唠比较常见的一些服务器手机软件。
01、Tomcat
就我的程序之路看来,Tomcat 使用的算是最得多,没有之一。假如 Tomcat 安装成功得话,能够在本地的浏览器中浏览来展示它默认页,见下图。
Tomcat 是通过 Apache 手机软件慈善基金会下属 Jakarta 项目开发的 Servlet 器皿,完成了对 Servlet 和 JavaServer Page(JSP)的大力支持,并带来了做为 Web 服务器的一些独有作用。
JSP 是通过 Sun Microsystems 企业核心创建的一种动态网站标准规范。JSP 能够回应手机客户端发送的要求,并依据要求具体内容动态性地形成 HTML、XML 或其它文件格式文本文档的 Web 网页页面,随后回到给请求者。
JSP 以 Java 语言表达做为开发语言,为用户的 HTTP 要求提供帮助,并能和服务器里的其他 Java 程序流程一同解决繁杂的项目需求。我是一名三线城市的 Java 程序猿,免不了要开发设计一些小型网站,这也就是为什么我就用 Tomcat 数最多的缘故。
02、Nginx
Nginx 是一款轻量的 Web 服务器、也支持端口转发,由于它的内存占用少,运行很快,分布式系统能力很强,因此在网络项目中广泛运用。
有关 Nginx,较为让人遗憾的一件事是,它创作者伊格尔·赛索耶夫进到牢房。
Nginx 在官方测试的结论中,可以适用五万个并行处理联接,中国比较有名的企业,例如百度搜索、京东商城、新浪网、网易游戏、腾讯官方、淘宝网等都是应用。
不清楚你有没有听过云虚拟主机的概念,便是在 Web 服务项目里有一个独立网站站点,这一网站相匹配独立网站域名(也有可能是IP 或端口号),具有独立的程序及网络资源,能够独立地对外开放提供帮助供客户浏览。
云虚拟主机有三种类型:根据域名的云虚拟主机、根据端口号的云虚拟主机、根据 IP 的云虚拟主机。
Nginx 可以用一个 server{}
标识来标志一个云虚拟主机,一个 Web 服务项目里可以有多个云虚拟主机标识对,既能与此同时适用好几个云虚拟主机网站。这一点,十分的好用。
03、Apache
一开始的时候,原以为 Apache 便是 Tomcat,傻傻分不清楚。后来知道他们完全不一样,logo 就不同(说些什么社会嗑)。
Apache 一般是指 Apache HTTP Server,是 Apache 手机软件慈善基金会(和 Tomcat 同为一家慈善基金会,因而易混)中的一个网页页面服务器手机软件。因其混合开发和安全系数,被广泛使用,是最流行 Web 服务器手机软件之一。它迅速、靠谱而且可以通过简单 API 拓展。
我是在服务器上组装 WordPress 的时候用到 Apache,那时并不了解有 LAMP 它的存在,因此组装的过程当中吃了很多苦,关键在于最后没有安装成功,大写的尴尬。
最后还是在黄铜群里的一个群员的远程控制带领下才完成安装,这个人是搞 PHP 的。LAMP 就是他告诉我的,组装下去十分的简单化,特别适合我这种对cmd有抗拒心理的程序猿。
LAMP 就是指一组运作动态网页或是服务器的自由软件名称首字母缩写:
- Linux,电脑操作系统(一般服务器手机软件都安装于 Linux 上,特性极好)
- Apache,网页页面服务器(便是 Apache HTTP Server)
- MariaDB 或 MySQL,数据库系统智能管理系统
- PHP、Perl 或 Python,开发语言
这种手机软件配合起来使用时,具有魅力,它组合还有一些,另外一个比较有名的便是 LNMP,用 Nginx 替代 Apache。
04、Jetty
Jetty 和 Tomcat 有许多共同之处,例如能够为 JSP 和 Servlet 给予运行时环境。Jetty 是 Java 语言表达编写的,它 API 以一组 JAR 包的方式公布。
与 Tomcat 对比,Jetty 能同时解决很多连接而且长时间维持这种连接,比如,一些 Web 聊天应用特别适合用 Jetty 服务器,例如淘宝的 Web 版往往。
Jetty 的构架非常简单,它有一个基本上数据库系统,这一数据库系统便是 Handler,全部可以被拓展的部件都可以作为一个 Handler,导入到 Server 中,Jetty 便是帮助我们管理方法这种 Handler 的。
05、Undertow
Undertow 是一个用 Java 编写的、灵活的、性能卓越的 Web 服务器,给予根据 NIO 的阻塞和非阻塞 API。
Undertow 能够置入到应用软件中或单独运作,仅需两行编码,很容易入门。下边这一段编码是官网所提供的一个应用 Async IO 的简单 Hello World 服务器实例:
public class HelloWorldServer {
public static void main(final String[] args) {Undertow server = Undertow.builder.addHttpListener(8080, \"localhost\").setHandler(new HttpHandler {@Overridepublic void handleRequest(final HttpServerExchange exchange) throws Exception {exchange.getResponseHeaders.put(Headers.CONTENT_TYPE, \"text/plain\");exchange.getResponseSender.send(\"Hello World\");}}).build;server.start;}}
立即运作后,在浏览器中搜索框中键入就能浏览到。是不是感觉十分轻便?
假如有小伙伴用过 JFinal 开发设计过小型网站得话,对 Undertow 应当不会陌生,由于 JFinal 的默认设置器皿早已切换到了 Undertow。
JFinal 都是基于 Java 语言的急速 WEB ORM 架构,其核心设计目标是开发设计快速、编码量减少、学习培训简易、功能齐全、轻量、易拓展、Restful。
06、公司级
对于其他的一些公司级服务器手机软件,我个人没用过,也不细说了。
- JBoss,红帽回收过,后更名为 WildFly。
- WebLogic,甲骨文字制作。
- WebSphere,IBM 出品。
坚信朋友们看过出品方,就知道这些服务器手机软件充足的超重量级,都是大佬,都是大佬。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。