httpd服务的简介

举报
单调函数 发表于 2020/07/08 11:29:41 2020/07/08
【摘要】 httpd服务的简介 1. httpd的简介 httpd是一个开源软件,且一般用作web服务器来使用。目前最流行的web服务器软件叫做httpd,httpd还有一个俗称叫apache,Apache是一个软件基金会,httpd也是这个软件基金会的一个项目。在早期的http server就叫做apache,到了http...

                                       httpd服务的简介

 

1. httpd的简介

 

httpd是一个开源软件,且一般用作web服务器来使用。目前最流行的web服务器软件叫做httpdhttpd还有一个俗称叫apacheApache是一个软件基金会,httpd也是这个软件基金会的一个项目。在早期的http server就叫做apache,到了http server 2.0以后就改名为httpd了。所以有时候听到apache服务器和httpd服务器其实都是指得是一个意思。

httpd是一个高度模块化软件,由核心(core)和模块(module)组成。这些模块大都是动态模块,因此可以随时加载。

 

2. 构建httpd服务器需要的软件

 

httpd服务器的构建,所需要的软件:httpdhttpd-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的三次握手和四次断开,因此,如果进行多个请求时,这样比较浪费资源,而且请求速度比较慢。所谓长连接就是客户端一直与http80端口建立连接不断开,这样如果再有资源请求时,就不需要经过tcp的三次握手和四次断开了,客户端就可以通过之前已经建立好的连接继续请求资源,所以长连接可以增加访问请求的速度和节省带宽资源。一般我们在httpd的配置文件中需要设置关于长连接的一些参数,比如长连接请求的数目和长连接请求的时间,这样就可以避免在某个客户端一直占有该连接,其他客户端就无法与web服务器建立连接了。在http报文的header信息中,如果出现Connectionkeep-alive这一行,表示这个httpd软件版本支持长连接的功能。

 

5. httpd的多到处理模块机制--MPM

 

对于http客户端发送的请求,web服务器主要有以下三种模型处理机制,我们将这些处理机制称作MPMMulit Path  Modules,多路径处理模块),这三种处理机制分别是:

 

prefork:预先生成进程,服务器启动时会生产多个进程,并且每一个进程处理一个请求,比较稳定,任何一个进程崩溃了都不会影响到其他的进程。不过,对于并发量比较大的时候,这种机制比较浪费资源,处理的速度比较慢,并发能力差。这也是apache服务器的默认使用机制。在这种模型下,会生成一个属主属组为roothttpd进程,再由这个进程来创建其他几个属主为apachehttpd进程。因此,使用这种模型处理机制时,你会发现有一个属主为root的进程,还有几个属主为apachehttpd进程,这些属主为apache的进程是属主为roothttpd进程的子进程。

 

worker:这是一种基于线程来工作,服务器启动时生成多个进程,每一个进程要生成多个线程,一个线程用来处理一个请求。在这种模型下,由于线程数比较多,因此,线程切换的次数也会非常大,而线程的切换也是需要消耗时间的。并且同一个进程下的所有线程共享同一个资源,会产生资源竞争问题,因此这种模型的并发能力看是比prefork模型要好,但由于也比较消耗资源,因此真正工作起来,两者也不会相差很远。

 

event:基于事件驱动机制来工作的,这种机制可以使用一个进程来响应多个请求。它的并发能力是最强的。它在httpd-2.4以后得到支持。

 

6. http的所具有的功能

 

 

对于一个web服务器来书,Apache服务器所具有的功能大概有这些:

 

1、可以事先创建进程,这样当有请求来时,可以快速处理

2、按需创建适当的进程,对于一个web服务器来说,创建过多的进程消耗资源太多,且不易管理。

3web服务器采用模块化设计,核心功能比较小,各种功能是通过模块来实现的,同时也支持运行配置和支持单独编译模块等功能。

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程序的静态模块和已经加载的动态模块。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。