Web服务器(Web server)按功能可分为网页服务器(HTTP Server)和应用服务器(Application Server),在初阶应用中更多接触网页服务器。在这篇文章中,将网站运行和管理环境如操作系统、编程语言解释器和数据库,一并纳入,从而打造一个完整的Web服务器环境。
Windows Server是微软发布的一系列服务器操作系统的品牌名,支持Microsoft Office Access、Microsoft SQL Server等数据库。Windows Server以组件方式安装Internet Information Server(IIS)及ASP、ASP.NET、服务器端包含等应用程序开发功能,从而原生支持.asp和.aspx。
目前在用的包括有Windows Server 2012/2016/2019,Windows Server 2019标准版官方报价$972。
Linux是一种自由和开放源码的类UNIX 操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布,在加上用户空间的应用程序之后,成为 Linux 操作系统。Linux 也是自由软件和开放源代码软件发展中最著名的例子。
正由于Linux是自由和开放源码系统,所以发展出Debian、Fedora、SUSE三大家族及众多的派生版本。主流Linux Server有Ubuntu、CentOS和Debian。
根据W3Techs(w3techs.com)的数据(2019年11月6日),35.6%的网站使用Linux,70.7%使用Unix(包含Linux);使用Linux的所有网站中有37.6%使用Ubuntu,20.8%使用Debian,以及17.0%使用CentOS。
提示:
Windows和Linux两大阵营最大的区别在于Windows的专有软件模式和Linux的自由软件模式,以及Windows的图形界面和Linux的命令行。微软官方开发linux版本的.NET和SQL Server,拥抱自由软件;同时,开源代码的Web服务器软件通常也跨平台支持Windows系统。因此阵营的选择无所谓孰优孰劣。
网页服务器(HTTP server)是一台负责提供网页的电脑,主要是各种编程语言构建而成,透过HTTP协议传给客户端(一般是指网页浏览器)。每一个网页服务器程序都需要从网络接受HTTP请求,然后提供HTTP回复给请求者。HTTP回复一般包含一个HTML文件,有时也可以包含纯文本文件、图像或其他类型的文件。
现在市面上常见的网页服务器有:
互联网信息服务(Internet Information Services,IIS)是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。IIS包括FTP/FTPS、NNTP、和HTTPS/HTTP、SMTP等服务。 IIS可设置的内容包括:虚拟目录及访问权限、默认文件名称、以及是否允许浏览目录。
IIS随服务器版Microsoft发布,选择安装。
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器软件,可以在大多数电脑操作系统中运行。由于其跨平台和安全性,被广泛使用,是最流行的Web服务器软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。Apache HTTP Server跨平台运行在类Unix操作系统及Microsoft Windows。
目前通常使用“解决方案包”(Solution Packages)LAMP安装一“LAMP”即Linux、Apache、MySQL/MariaDB和PHP/Perl/Python的联合体。
Nginx是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。一大部分Web服务器使用Nginx,通常作为负载均衡器。Nginx运行在类Unix操作系统及Microsoft Windows,但Windows上用Nginx和php-cgi.exe组合来运行PHP的方式并不可靠,稳定性有待提高。
目前通常使用“解决方案包”(Solution Packages)LNMP安装,LNMP即以 Nginx 代替 Apache 的 LAMP。
lighttpd是一款以BSD许可证开源的网页服务器,在确保兼容常见标准、安全性及灵活性的情况下专为需要处理速度的环境优化。相较于其他的网页服务器,lighttpd仅需少量的内存及CPU资源即可达到同样的性能。它可原生运行在类Unix操作系统及Microsoft Windows上。
Netcraft 2019年10月发布的 Web Server Survey 报告显示Web 服务器排行榜:Nginx 32.69%,Apache 29.02%,IIS 14.71%。
常见的应用服务器(Application Server)有:
Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全局管理和Tomcat阀等。由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器。
Tomcat是跨平台的。
动态服务器网页(Active Server Pages,ASP)是微软公司的专利技术,当前最新的版本为3.0,由微软公司开发的服务器端运行的脚本平台,它被Windows下Internet Information Services (IIS)的程序所管理。
.asp是ASP 页面的扩展名。
ASP.NET是由微软在.NET Framework框架中所提供,开发Web应用程序的类库,封装在System.Web.dll文件中,显露出System.Web名字空间,并提供ASP.NET网页处理、扩展以及HTTP通道的应用程序与通信处理等工作,以及Web Service的基础架构。ASP.NET是ASP技术的后继者,但它的发展性要比ASP技术要强大许多。
.aspx是ASP.NET 页面的扩展名。
PHP是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面,但PHP也被用于其他很多领域。
.php是PHP 页面的扩展名。
使用什么语言开发网站,则需要安装对应的语言解释器:.asp > ASP;.aspx > ASP.NET;.php > PHP。
作为网络的一个重要应用,数据库在网站建设与网络营销中发挥着重要的作用,与普通网站相对而言,具有数据库功能的网站网页我们通常称为动态页面,页面上的内容(或部分内容)根据数据库中相应部分内容的调整而变化,使网站内容更灵活,维护更方便,更新更便捷。
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了Microsoft Jet Database Engine和图形用户界面两项特点,是Microsoft Office的系统程序之一。
Microsoft SQL Server是由美国微软公司所推出的关系数据库解决方案,最新的版本是SQL Server 2017,已在美国时间2017年10月2日发布。 数据库的内置语言原本是采用美国标准局和国际标准组织所定义的SQL语言,但是微软公司对它进行了部分扩充而成为作业用SQL。
MySQL原本是一个开放源码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统收购。2009年,甲骨文公司收购昇阳微系统公司,MySQL成为Oracle旗下产品。
MongoDB是一种面向文档的数据库管理系统,用C++等语言撰写而成,以此来解决应用程序开发社区中的大量现实问题。2007年10月,MongoDB由10gen团队所发展。2009年2月首度推出。
如需在项目中使用数据库存储,需要安装对应的数据库:.asp、.aspx > Microsoft Office Access、Microsoft SQL Server;.php > My SQL、MongoDB。
提示:
酷码STEM实验室所列文章的Web服务器示范配置为:CentOS + Nginx + PHP + MySQL。