先说一句哈,自从在 B 站开始刷视频后,我就觉得要学的内容实在是太多了。这篇“服务器软件大扫盲”就是我看了羊哥的一期视频后有感而发的,比如说 Web 服务器、HTTP 服务器、应用服务器这三个概念,我是见过很多次,但如果你非要我说出它们之间的区别的话,我只好哑口无言。
还有,我自己用过的 Tomcat、Nginx、Apache、Jetty、Undertow,它们之间有什么优缺点,嗯。。。。。。只好继续哑口无言。可能有很多小伙伴和我一样,用过,但具体的差别还真的说不上来,所以我打算借这个机会来和大家一起学习下。(我就是课代表,我骄傲)
先来说 Web 服务器,它一般指的是网站服务器,可以向浏览器(PC端或者移动端)等 Web 客户端提供服务,供请求数据或者下载数据。服务器使用 HTTP (超文本传输协议)和客户端浏览器进行通信,因此我们也把 Web 服务器称作为 HTTP 服务器。
再来说应用服务器,它是一种软件框架,提供一个应用程序运行的环境。通常用于为应用程序提供安全、数据、事务支持、负载平衡大型分布式系统管理等服务。
在我看来,Web 服务器和应用服务器之间的界限已经非常模糊,后者更高级一点,就好像公司与企业这两个名词之间的差别。
常见的 Web 服务器软件包括 Nginx、Apache、IIS,常见的应用服务器软件包括 WebLogic、JBoss,前者更轻量级,后者更重量级。
接下来,我们就来唠唠常见的一些服务器软件。
就我的程序生涯来看,Tomcat 用的算是最多了,没有之一。如果 Tomcat 安装成功的话,可以在本地的浏览器中访问 http://127.0.0.1:8080 来展示它的默认首页,见下图。
Tomcat 是由 Apache 软件基金会属下 Jakarta 项目开发的 Servlet 容器,实现了对 Servlet 和 JavaServer Page(JSP)的支持,并提供了作为 Web 服务器的一些特有功能。
JSP 是由 Sun Microsystems 公司主导建立的一种动态网页技术标准。JSP 可以响应客户端发送的请求,并根据请求内容动态地生成 HTML、XML 或其他格式文档的 Web 网页,然后返回给请求者。
JSP 以 Java 语言作为脚本语言,为用户的 HTTP 请求提供服务,并能与服务器上的其它 Java 程序共同处理复杂的业务需求。我是一名三线城市的 Java 程序员,免不了要开发一些小型网站,这也就是为什么我用 Tomcat 最多的原因。
Nginx 是一款轻量级的 Web 服务器、也支持反向代理,由于它的内存占用少,启动极快,高并发能力强,所以在互联网项目中广泛应用。
关于 Nginx,比较令人遗憾的一件事是,它的作者伊戈尔·赛索耶夫进了监狱。
Nginx 在官方测试的结果中,能够支持五万个并行连接,国内比较有名的公司,比如说百度、京东、新浪、网易、腾讯、淘宝等都在使用。
不知道你有没有听过虚拟主机的概念,就是在 Web 服务里有一个独立的网站站点,这个站点对应独立的域名(也可能是IP 或端口),具有独立的程序及资源,可以独立地对外提供服务供用户访问。
虚拟主机有三种类型:基于域名的虚拟主机、基于端口的虚拟主机、基于 IP 的虚拟主机。
Nginx 可以使用一个 server{}
标签来标识一个虚拟主机,一个 Web 服务里可以有多个虚拟主机标签对,即可以同时支持多个虚拟主机站点。这一点,非常的实用。
最开始的时候,我以为 Apache 就是 Tomcat,傻傻分不清楚。后来知道它们完全不同,logo 就不同(说什么大实话)。
Apache 一般是指 Apache HTTP Server,是 Apache 软件基金会(和 Tomcat 同属一家基金会,因此容易混淆)下的一个网页服务器软件。由于其跨平台和安全性,被广泛使用,是最流行的 Web 服务器软件之一。它快速、可靠并且可通过简单的 API 扩展。
我是在服务器上安装 WordPress 的时候用到了 Apache,当时并不知道有 LAMP 的存在,所以安装的过程中吃了很多苦,关键是最后没有安装成功,大写的尴尬。
最后还是在青铜群里的一个群友的远程帮助下才完成安装的,他是搞 PHP 的。LAMP 就是他告诉我的,安装起来非常的傻瓜式,非常适合我这种对命令行有抗拒心理的程序员。
LAMP 是指一组运行动态网站或者服务器的自由软件名称首字母缩写:
这些软件配合起来使用的时候,极具活力,它的变体还有很多,另外一个比较有名的就是 LNMP,用 Nginx 代替 Apache。
Jetty 和 Tomcat 有很多相似之处,比如说可以为 JSP 和 Servlet 提供运行时环境。Jetty 是 Java 语言编写的,它的 API 以一组 JAR 包的形式发布。
与 Tomcat 相比,Jetty 可以同时处理大量链接并且长时间的保持这些链接,例如,一些 Web 聊天应用非常适合用 Jetty 服务器,比如说淘宝的 Web 版旺旺。
Jetty 的架构比较简单,它有一个基本数据模型,这个数据模型就是 Handler,所有可以被扩展的组件都可以作为一个 Handler,添加到 Server 中,Jetty 就是帮我们管理这些 Handler 的。
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() {
@Override
public void handleRequest(final HttpServerExchange exchange) throws Exception {
exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain");
exchange.getResponseSender().send("Hello World");
}
}).build();
server.start();
}
}
直接运行后,在浏览器中地址栏中输入 http://localhost:8080
就可以访问到了。是不是感觉非常轻巧?
如果有小伙伴使用过 JFinal 开发过小型网站的话,对 Undertow 应该不会陌生,因为 JFinal 的默认容器已经切换到了 Undertow。
JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。
至于其他的一些企业级服务器软件,我个人没有用过,就不细说了。
相信小伙伴们看了出品方,就知道这些服务器软件足够的重量级,都是大佬,都是大佬。
本文由哈喽比特于4年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/ZF3K4FYUOFeShHL2mo46VQ
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。