互联网从90年代开始席卷全球,现如今基本上所有业务都可以在互联网上完成,互联网已经成为我们生活中不可或缺的一部分。
那么互联网web协议是怎样的呢?可以概括为访问者从给定的Web站点请求文档,而DNS和IP系统将该请求转发到正确的计算机。这台托管请求的网页的计算机将把网页提供给访问者。
网页本质上是HTML文档。为了能够向访问者提供不同的网页,提供服务的机器需要一个服务器程序。Nginx和Apache就是这个提供服务的的软件程序,它们可以处理请求进行分析,然后将用户所需要的文档信息返回给访问者。
Nginx与Apache
Nginx和Apache都是非常流行的Web服务器。
Apache于年首次发布,Nginx于年发布。两者都被全球强的大型公司使用。Nginx的市场份额多年来一直在稳定增长。在某些情况下,Nginx在性能方面更具有竞争优势。Apache
随着蒂姆伯纳斯李创建了html,之后Apache就占据着web服务器的主导地位。现在发行的linux服务器,无论是redhat还是ubuntu,apache都是默认自带的服务器,因此,很多人都是使用Apache来进行web开发的,毕竟人家操作系统已经给你提供好了。
apache受欢迎的一个点就是他的.htacess文件配置管理。
Apache使用.htaccess进行配置,它为处理传入请求的方式提供了很大的灵活性。不同的重定向规则,最大上传文件大小,URL重写,内存限制,目录保护,header头信息,cookie,查询字符串操作。
在服务器根目录中,目录树中的每个级别或目录都可以具有自己的.httaccess文件,并具有自己的配置。
对于共享主机提供商,这是一个梦想,因为他们可以在同一台计算机上为数百个用户提供一种配置其网站服务方式的方式,而不会影响其他网站。客户可以在受限的共享托管环境中配置许多详细信息,而无需接触全局服务器配置。
但是,这种灵活性是以性能为代价的:“无论您实际上是否使用它们,允许.htaccess文件都会导致性能下降!”
每次启用.htaccess文件时,Apache都必须从请求的URL或文件中遍历整个目录树,直到所有的更高级别,直到服务器的根目录,然后针对每个请求加载它们。
apache还有一个受欢迎的点是他的模块机制。
Apache便允许用户安装模块,然后根据需要启用/禁用它们。
apahce有很多好用的模块,比如压缩,加密,日志记录,重定向到更高级的内容,例如使用高级语法编辑请求和响应,正是有了这些模块,才让Apache处理请求更加多样化。
nginx
Nginx(也称为nginx或NGINX)是在年由俄罗斯开发人员IgorSysoev首次公开发行的。
Nginx是专门为解决ApacheWeb服务器的性能限制而编写的。
Nginx发布后,主要用于提供静态文件,并在Apache安装之前用作负载平衡器或反向代理。随着网络的发展以及对速度和硬件使用效率的高要求,越来越多的网站开始使用Nginx完全替换Apache,这也要归功于更成熟的软件。
现在市场上nginx的份额已经超过了Apache,很多大公司都开始采用nginx作为后端的web服务器,有些大公司甚至会修改nginx的部分代码来使用,比如我们熟知的Tengine。
nginx最初设计的时候就是模块化的思想,它的所有功能都是采用模块形式提供的,需要什么功能,只要对应加载相应的模块就可以。
nginx一直都在全速发展着,目前最新的web技术quic和