加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Web 服务器:APACHE HTTPD

发布时间:2023-06-09 15:18:00 所属栏目:教程 来源:
导读:刚入门 Web 的小伙伴很容易迷失在 Apache、Tomcat、Httpd、Nginx 这些陌生词汇中,所以在开始本章节的内容前我们先来认识下它们。

Apache:全球最权威的软件开源协会,很多公司会把自己内部的一些系统开源并提交申
刚入门 Web 的小伙伴很容易迷失在 Apache、Tomcat、Httpd、Nginx 这些陌生词汇中,所以在开始本章节的内容前我们先来认识下它们。

Apache:全球最权威的软件开源协会,很多公司会把自己内部的一些系统开源并提交申请给 Apache,让 Apache 统一来管理这些开源项目为全世界的软件做贡献,同时也提升了公司的知名度和一些商业的战略价值。尴尬的一点是早期的 Http Server 就叫做 Apache,后来的版本改名为 Httpd 了,所以很多人习惯说 Apache 服务器,其实默认指的是 Httpd;

Httpd:Apache 旗下的 Web 服务器,它只提供静态资源的访问;

Tomcat:Apache 旗下的另一个开源项目,区别于 Httpd 的是它支持动态内容服务;

Nginx:Apache 的另一个开源服务器,但是更多时候拿他来作为代理服务器。Nginx 的功能非常强大,远超了 Http 服务器的范畴,更像是一个网络管理工具。

Httpd 简介

Httpd 是 C 语言编写的遵从 Http 协议的服务器,是一个高度模块化软件,由 Server 和 Module 组成。这些模块大都是动态模块,因此可以随时加载。

Httpd 作为起步比较早的一个 Web 开源项目,代码的稳定性/社区/文档 都是比较可靠的,他支持的功能非常丰富,并且可以按需地引入自己所需要的模块。

Httpd 一般比较的对象是 Nginx 服务器,他们两个是静态资源服务器的首选:

Nginx 轻量且并发能力高于 Httpd;
Nginx 能够实现负载均衡;
Httpd 支持的功能模块比较丰富;
Httpd 的 rewrite 功能强于 Nginx。
当然,也有的网站架构同时用到了 Nginx 和 Httpd ,用 Nginx 作为负载均衡,将流量分发到后面的 Httpd Web服务端。

Httpd 的工作模型

对于请求 Httpd 有 3 种处理模型,MPM(Mulit Path Modules,多路径处理模块)它们会影响到 Httpd 的速度和可伸缩性。在编译的时候可以根据需要使用 --with-mpm 选项来指定 Httpd 的工作方式,默认是 prefork 模式。

工作模式    说明
prefork    服务器启动时会生成多个进程,并且每一个进程处理一个请求,这种模式并发能力较差。
worker    服务启动的时候也是会生成多个进程,但是每个进程又会生成多个线程,让线程来负责处理请求。这种模式会比prefork并发能力好些。
event    基于事件的驱动,一个进程处理多个请求,这种模式的并发处理能力最强。
可以通过 httpd -V 命令查看当前的工作模型:

Tips:比较旧的版本需要用 apachectl -V 命令来查看当前工作模型。

$ httpd -V
Server version: Apache/2.4.18 (Unix)
Server built:   Feb 18 2020 02:28:26
Server's Module Magic Number: 20120211:52
Server loaded:  APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture:   64-bit
Server MPM:     event
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
不同的工作模式,对应着不同的配置。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章