Apache有什么功能特点?可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
Apache是一款Web服务器软件,有多种产品,可以支持SSL技术,支持多个虚拟主机。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。它可以在大多数计算机操作系统中运行,由于其跨平台和安全性被广泛使用。
1.支持动态加载和卸载模块
就是类似热拔插一样的功能,可以实现不重启服务的情况加载和卸载模块并使其生效。
2.支持多路处理模块MPM
Apache可以有三种(处理)工作模式,分别为:
prefork---多进程I/O模型,一个进程处理一个请求,是Apache的默认工作模式
该工作模式下存在一个主进程和多个子进程,那些个子进程由主进程生成和回收。主进程负责生成套接字、管理子进程,但是不负责处理请求,主进程由root身份执行;
子进程才是真正负责处理请求的角色,一开始会有多个空闲子进程等待处理请求,一个子进程处理一个请求,子进程由apache用户执行。
worker----复用多进程I/O模型
该工作模式下,存在一个主进程,同样地主进程负责管理子进程,并不处理请求,主进程生成多个子进程,同时每个子进程生成多个线程,一个线程处理一个请求,这样假设子进程数为M,每个子进程的线程数为N,则此工作模式可以并发处理M*N个请求。该模式下占用内存小,多用于大型网站。
event-----事件驱动模型
event和worker工作类似,都是并发处理M*N个请求。但是event做出的改进是,每个子进程中对线程划分的更加详细,有管理线程和服务线程两种,为什么要这样设计呢。
我们知道HTTP1.1版本默认为持久连接keepalive,如果建立连接却没有发送请求,就会一直占用此连接的带宽直到规定时间才会释放,因此加入了管理进程,专门监视keepalive类型的服务线程,当发生真正的请求的时候,管理线程把请求转交给服务线程处理,处理完毕后管理线程会释放服务线程的资源。增加了带宽的利用率。
3.高度模块化
Apache支持把更多的功能以模块化的形式存在,通过加载和卸载模块完成不同功能的增加和删除,类似于Linux内核的模块化,可以加载和卸载内核的驱动模块。构成了core+modules模型;
4.虚拟主机
有些网站的访问量低的可怜,这么低的访问量如果专门用一台服务器来搭建的话,实在是划不来,因此就想到了在一台服务器上搭建多个网站,多个网站共用一台服务器降低资源消耗,这样的功能就叫做虚拟主机功能。
一个服务器搭建多个网站,每个网站对应不同的域名,外部客户端想要访问的时候,DNS会将这些不同网站的域名解析到同一台服务器,服务器根据HTTP请求的首部行中的域名信息,将请求转至对应的目录资源。
小tips:虚拟主机和虚拟机的区别->虚拟主机是一台主机上边部署多个网站的功能,支撑这么多网站的主机运行的是同一个操作系统;而虚拟机是一个系统通过VMware、LVM等技术虚拟出来的多个主机,这些虚拟的主机可以运行不同的操作系统。
5.CGI通用网关接口
支持动态网页。这样说会很晦涩,先来说什么是网关,网关就是两个网段内的主机进行通信的交界口,同一网段内的主机通信时是不需要经过网关的,但是一旦不同网段的主机进行通信,就需要把数据先交给网关,让网关转交给另一个网段。
同理再来看CGI,web服务器只能发送静态页面,当服务器收到例如index.php的文件请求时,服务器总不能把index.php发送出去吧。
因为这是一个动态文件啊,此时CGI会把index.php处理成一种规定的数据格式,然后交给php解释器执行,随后再把执行后的数据经过CGI处理,最后把结果由服务端发送给客户端,这里的CGI就是起到了静态请求和动态请求的转换接口。
6.支持反向代理
7.可以实现负载均衡
8.支持路径别名
为了不让用户知道服务端资源的真正目录,可以对目录做一个别名,用户只需要知道这个别名即可,别名会自动跳转到真正的目录。
看完上述内容,你们对Apache的功能特点有进一步的了解吗?如果还想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。