httpd服务的简介
httpd服务的简介
1. httpd的简介
httpd是一个开源软件,且一般用作web服务器来使用。目前最流行的web服务器软件叫做httpd,httpd还有一个俗称叫apache,Apache是一个软件基金会,httpd也是这个软件基金会的一个项目。在早期的http server就叫做apache,到了http server 2.0以后就改名为httpd了。所以有时候听到apache服务器和httpd服务器其实都是指得是一个意思。
httpd是一个高度模块化软件,由核心(core)和模块(module)组成。这些模块大都是动态模块,因此可以随时加载。
2. 构建httpd服务器需要的软件
httpd服务器的构建,所需要的软件:httpd和httpd-manual。
其中httpd是构建httpd服务器所需要的软件;另外的httpd-manual则是安装httpd的命令手册,可以在无网条件下,来查询httpd的相关参数。
3. httpd生产的文件
httpd目前有多个版本,最新的是2.4,稳定版则是2.2,还有更早的版本2.0
在安装了httpd软件之后,会自动生成多个文件。这些文件有:
/usr/sbin/httpd:httpd的二进制文件
/etc/rc.d/init.d/httpd:httpd服务的脚本文件;
/etc/httpd:httpd服务的工作根目录。
/etc/httpd/conf:httpd的配置文件目录
其中主配置文件是:./httpd.conf
配置文件还包括这些文件:/etc/httpd/conf.d/*.conf
/etc/httpd/modules:httpd模块的目录位置
/etc/httpd/logs:httpd的日志目录,这个目录链接到了/var/log/httpd这个目录
其中日志文件有两类:
访问日志为:./access_log
错误日志为:./err_log
/var/www/:网页的存放目录和cgi-bin程序的目录
/etc/httpd/conf.d/welcome.conf:如果网页的根目录下没有index.html文件时,访问服务器时将会显示的欢迎页面信息。
4. http的长连接功能
在早期的http/1.1版本之后,http增加了缓存功能和长连接。
缓存功能可以加速页面的打开速度。
长连接:由于http是无状态的,且http是基于tcp协议的,因此http的建立必须要经过tcp的三次握手和四次断开,所以每当请求一个资源时,都会经过tcp的三次握手和四次断开,因此,如果进行多个请求时,这样比较浪费资源,而且请求速度比较慢。所谓长连接就是客户端一直与http的80端口建立连接不断开,这样如果再有资源请求时,就不需要经过tcp的三次握手和四次断开了,客户端就可以通过之前已经建立好的连接继续请求资源,所以长连接可以增加访问请求的速度和节省带宽资源。一般我们在httpd的配置文件中需要设置关于长连接的一些参数,比如长连接请求的数目和长连接请求的时间,这样就可以避免在某个客户端一直占有该连接,其他客户端就无法与web服务器建立连接了。在http报文的header信息中,如果出现Connection:keep-alive这一行,表示这个httpd软件版本支持长连接的功能。
5. httpd的多到处理模块机制--MPM
对于http客户端发送的请求,web服务器主要有以下三种模型处理机制,我们将这些处理机制称作MPM(Mulit Path Modules,多路径处理模块),这三种处理机制分别是:
prefork:预先生成进程,服务器启动时会生产多个进程,并且每一个进程处理一个请求,比较稳定,任何一个进程崩溃了都不会影响到其他的进程。不过,对于并发量比较大的时候,这种机制比较浪费资源,处理的速度比较慢,并发能力差。这也是apache服务器的默认使用机制。在这种模型下,会生成一个属主属组为root的httpd进程,再由这个进程来创建其他几个属主为apache的httpd进程。因此,使用这种模型处理机制时,你会发现有一个属主为root的进程,还有几个属主为apache的httpd进程,这些属主为apache的进程是属主为root的httpd进程的子进程。
worker:这是一种基于线程来工作,服务器启动时生成多个进程,每一个进程要生成多个线程,一个线程用来处理一个请求。在这种模型下,由于线程数比较多,因此,线程切换的次数也会非常大,而线程的切换也是需要消耗时间的。并且同一个进程下的所有线程共享同一个资源,会产生资源竞争问题,因此这种模型的并发能力看是比prefork模型要好,但由于也比较消耗资源,因此真正工作起来,两者也不会相差很远。
event:基于事件驱动机制来工作的,这种机制可以使用一个进程来响应多个请求。它的并发能力是最强的。它在httpd-2.4以后得到支持。
6. http的所具有的功能
对于一个web服务器来书,Apache服务器所具有的功能大概有这些:
1、可以事先创建进程,这样当有请求来时,可以快速处理
2、按需创建适当的进程,对于一个web服务器来说,创建过多的进程消耗资源太多,且不易管理。
3、web服务器采用模块化设计,核心功能比较小,各种功能是通过模块来实现的,同时也支持运行配置和支持单独编译模块等功能。
4、支持各种方式的虚拟主机配置。(虚拟主机在后面在详细介绍)
主要有三种虚机主机:
1、基于ip的虚机主机
2、基于端口的虚机主机
3、基于域名的虚拟主机
5、支持https协议(通过加载mod_ssl模块来实现)
6、支持用户认证
7、支持基于ip和主机名的ACL
8、支持每目录的访问控制
9、支持URL重写
10、支持路径别名
11、支持反向代理和负载均衡功能。通常用于tomcat的前端反向代理。
7. httpd的常用命令
httpd -v:查看httpd的版本号
httpd -l:查看编译进httpd程序的静态模块。
httpd -M:查看已经编译进httpd程序的静态模块和已经加载的动态模块。
- 点赞
- 收藏
- 关注作者
评论(0)