httpd的简介

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

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

构建httpd服务器需要的软件

httpd服务器的构建,所需要的软件:httpd和httpd-manual。

其中httpd是构建httpd服务器所需要的软件;另外的httpd-manual则是安装httpd的命令手册,可以在无网条件下,来查询httpd的相关参数。

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文件时,访问服务器时将会显示的欢迎页面信息。

http的长连接功能

在早期的http/1.1版本之后,http增加了缓存功能和长连接。

缓存功能可以加速页面的打开速度。

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

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以后得到支持。

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的前端反向代理。

大概一个web服务器支持以上功能吧!!!

httpd的常用命令

httpd -v:查看httpd的版本号

httpd -l:查看编译进httpd程序的静态模块。

httpd -M:查看已经编译进httpd程序的静态模块和已经加载的动态模块。

转载于:https://blog.51cto.com/xslwahaha/1548983

httpd服务的简介相关推荐

  1. CentOS 7源码安装httpd服务

    httpd的简介 httpd是一个开源软件,且一般用作web服务器来使用.目前最流行的web服务器软件叫做httpd,httpd还有一个俗称叫apache,Apache是一个软件基金会,httpd也是 ...

  2. Linux—搭建Apache(httpd)服务

    文章目录 1.httpd简介? 2.httpd服务特点 3. httpd的工作模型 4.httpd的配置文件 5.httpd自带的工具程序 6.httpd常用配置 6.1 安装httpd服务 6.2 ...

  3. 没有可用软件包httpd_CentOS 7源码安装httpd服务

    httpd的简介 httpd是一个开源软件,且一般用作web服务器来使用.目前最流行的web服务器软件叫做httpd,httpd还有一个俗称叫apache,Apache是一个软件基金会,httpd也是 ...

  4. httpd服务的访问控制

    web 网站服务(二) 1:在web(一)我们发现,在访问AWSstats日志分析系统时并不需要提供账号和密码,就可以登录系统,而我们只需要知道对应的网址就可以看到web站点的访问情况,任何人都可以看 ...

  5. Zabbix监控httpd服务

    Zabbix监控httpd服务 一.工作要求及目的 二.WEB配置步骤 1.进入监控主机列表 2.链接模板 3.查看自定义HTTP端口监控项 4.查看自定义的触发器 三.客户端测试http服务停止报警 ...

  6. centos7日志文件_Shell 脚本自动监控重启 httpd 服务并记录日志

    环境 CentOS7 思路 设置一个死循环,执行脚本时开始启动 httpd 服务,同时开始记录当前时间,然后输出到日志中,再 sleep 14 秒,之后马上开始停止 httpd 服务,同时开始记录当前 ...

  7. centos httpd服务做yum本地源,以及安装Mysql

    step0 首先centos的iso文件是有两张的,dvd1和dvd2,dvd2是额外的软件,常有的一些软件都在dvd1里面,而且repodata配置文件也在dvd1里面,如果直接把dvd2当做镜像文 ...

  8. centos7修改ip地址命令_CentOS7 安装 httpd 服务

    安装 httpd 服务 输入下面命令安装 httpd 服务,注意要使用带有 root 权限 的用户,我是从普通用户切回超级用户 root 再开始执行命令的: yum -y install httpd ...

  9. 实验图文详解——apache的编译安装及httpd服务开机自启

    实验图文详解--apache的编译安装及httpd服务开机自启 1.导入安装包 2.解压安装包 3.分别解压httpd.apr.apr-util包 4.对apr.apr-util目录进行移动及重命名操 ...

最新文章

  1. maya表情blendshape_Maya的形状融合变形器Blend Shape | 学步园
  2. 如何安装fedora13的显卡驱动
  3. WDS配置时遇到的问题
  4. Beginning C# Objects 读书笔记(一)
  5. U3D+SVN: 两份相同资源放在不同目录下导致META的更改
  6. Dubbo与SpringCloud的架构与区别
  7. Spring AOP示例教程 - Aspect,Advice,Pointcut,JoinPoint,Annotations,XML Configuration
  8. JavaScript原生对象属性和方法详解——Date对象
  9. python 爬取了租房数据
  10. 用于主题检测的临时日志(861e8353-61d5-43a9-b1b4-e055dac9cf39 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)...
  11. Linux入门: grep与egrep 知识总结
  12. 数组和集合的互相转换
  13. 解决pdf中翻译外文文献到word参考文献格式错误
  14. 2D Pixel Perfect:使用Unity创建任天堂红白机风格复古游戏
  15. 最简单优雅修改jupyter自带主题字体大小颜色(不需要插件不需要第三方theme)
  16. 大屏页面使用transform属性scale进行缩放,高德地图点击事件失效,地图展示模糊
  17. python sys.path[0_Python的sys.path从哪里初始化?
  18. cisco 2821 路由器的端口映射
  19. Greenplum Python专用库gppylib学习——base.py
  20. 百度aistudio上使用yolov4训练人脸检测模型

热门文章

  1. CNET选出的50个我们认为是有用或者有趣的网站
  2. 如何挑选h5制作公司?
  3. 爆肝,Unity3D游戏开发(第 2 章 编辑器的结构)
  4. 【TVM源码学习笔记】附录1 TVM python调用C++的机制
  5. 汽车维修管理系统C语言代码,大智慧汽车维修管理系统
  6. 小程序上传文字和图片到服务器并保存在数据库
  7. UNION 和 UNION ALL的区别
  8. 微软CTO谈AI:逃不掉马拉松就准备好跑鞋!30秒自动化妆机;ChatGPT刷爆票圈;剪纸风格的AI绘画 | ShowMeAI资讯日报
  9. 错失项目汇报机会是一种罪过
  10. ant design Menu组件子菜单样式设置