服务器软件大扫盲


服务器软件大扫盲

文章插图
作者 | 沉默王二
责编 | Carol
头图 | CSDN下载自视觉中国
先说一句哈 , 自从在 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 安装成功的话 , 可以在本地的浏览器中访问 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 最多的原因 。
 
02、NginxNginx 是一款轻量级的 Web 服务器、也支持反向代理 , 由于它的内存占用少 , 启动极快 , 高并发能力强 , 所以在互联网项目中广泛应用 。
服务器软件大扫盲

文章插图
关于 Nginx , 比较令人遗憾的一件事是 , 它的作者伊戈尔·赛索耶夫进了监狱 。
Nginx 在官方测试的结果中 , 能够支持五万个并行连接 , 国内比较有名的公司 , 比如说百度、京东、新浪、网易、腾讯、淘宝等都在使用 。
不知道你有没有听过虚拟主机的概念 , 就是在 Web 服务里有一个独立的网站站点 , 这个站点对应独立的域名(也可能是IP 或端口) , 具有独立的程序及资源 , 可以独立地对外提供服务供用户访问 。
虚拟主机有三种类型:基于域名的虚拟主机、基于端口的虚拟主机、基于 IP 的虚拟主机 。
【服务器软件大扫盲】Nginx 可以使用一个 server{}标签来标识一个虚拟主机 , 一个 Web 服务里可以有多个虚拟主机标签对 , 即可以同时支持多个虚拟主机站点 。这一点 , 非常的实用 。
 
03、Apache最开始的时候 , 我以为 Apache 就是 Tomcat , 傻傻分不清楚 。后来知道它们完全不同 , logo 就不同(说什么大实话) 。


推荐阅读