要展开这个话题,我想首先需要解决好为什么需要这样做的问题。源码级别看待
Apache
,首先需要解决态度问题哈。
追溯
Apache
的历史,从
Tin Berners-Lee
1991
年编写的
CERN HTTP
服务器算起,已经有
20
多年历史了。当下,
Apache
可以说是最流行
Web
服务器。
facebook
,
google
,百度等大型互联网公司所使用的
web
server
属于定制过的
Apache
,广义上也算是
Apache
吧,这样看的话,互联网流量的绝大部分都是由
Apache
服务器提供。
PHP
方面,虽然现有后起之秀
nginx
,网上也到处都是
Apache
和
nginx
评测文章,论调基本一致:
nginx
比
Apache
更优。这里不做比较,只要你承认,
Apache
的的确确是一款优秀的
web server
就足以了,至于这一点,我想就算是
nginx
的拥趸,也不会质疑这一点。
Apache
良好的模块化架构设计已经成为经典的服务器架构。
然而,看看计算机书架上的
Apache
的书,几乎都是讲如何使用
Apache
的,很少有对
Apache
进行源码级别研究的,可是,功利一点的角度来看,很多大公司在进行招聘的时候,又希望招到那些熟悉
Apache
模块的,最好还有
Apache
模块开发经验的人。从实践到理论来看,我想,源码级别研究
Apache
,对于相关从业人员来说,是很有必要的。单单从软件开发的角度来看,
Apache
由于自身优秀的架构,任何深入研究它的人,都可以吸取丰富的营养。
源码级别研究
Apache
,我想到的一个很重要的原因,那就是业务的变迁所致。随着业务的变化,我们在开发应用的时候,经常要在现有
Apache
模块的基础上开发新的模块,或是修改已有模块。举个简单的例子,现在很热门的
SNS
游戏,很多时候客户端需要向服务端发送请求,我的经验表明,很多请求仅仅需要服务器端返回几个字节的结果。但是,我们都明白,
Apache
采用
HTTP
协议,不管请求还是返回结果,基本都有三部分组成:请求行(返回状态),头部,数据体。就算你仅仅返回一个字节的处理结果,其也要返回一个庞大的数据流。对于以前的网页型的应用来说,那点头部信息对于网页中的
CSS
样式,图片等信息来说可以忽略不计。但是,在
SNS
这一类型的应用中就需要仔细斟酌了。很受欢迎的
SNS
游戏一般都面临着极大的服务器压力,我们在架设
SNS
服务器的时候,根据我们的应用是修改定制
Apache
模块,将极大的减小应用对于服务器的压力。
分享到:
相关推荐
Apache 2.2.22、PHP 5.2.17、Mysql 5.6 源码安装下载 编译安装参看:https://blog.csdn.net/Hynial/article/details/82057033
LAMP是世界上最流行的组合,当然同时也有Nginx,也就是LNMP: LAMP 相对于 Nginx来说较为安全,但是Nginx处理高并发比Apache要强,Nginx 相对于 LAMP 来说安全较为差一点,同样的配制环境负载远远高于 LAMP ...
在centos7环境下源码安装lamp apache版本 2.4.43 php版本 5.4.45
php-5.5.7+mysql-5.6.15+apache-2.4.7 含安装文档,源码包网盘地址,以及可能会遇到的相关问题的解决办法
构建Linux下Web服务器的软件源码包!主要安装方式为源码编译安装!
apache,mysql,php,社区动力
需要源码编译安装LAMP所需要的软件。在做LAMP架构的时候,Apache的三个包,mysql一个包,phpMyAdmin一个包,PHP一个包。
适用于lamp源码编译
LAMP是世界上最流行的组合,当然同时也有Nginx,也就是LNMP: LAMP 相对于 NGINX 来说较为安全,但是Nginx处理高并发比Apache要强,NGINX 相对于 LAMP 来说安全较为差一点,同样的配制环境负载远远高于 LAMP 向国内的...
该压缩文件共5个压缩包,包含Linux系统下源码方式安装LAMP所需要的全部软件。 Linux + Apache + Php + MySQL + 扩展软件: 该压缩文件中包括一下软件: 1 libxml2-2.6.30.tar.gz 2 libmcrypt-2.5.8.tar.gz 3 zlib-...
支持ssl,curl开启ssl支持,环境为apache2.4+php5.6+mysql5.5,使用时请在根目录创建一个data目录,然后将源码包以及shell脚本复制到该目录,给install*文件可执行权限,然后执行installall即可。
有详细的安装步骤:https://blog.csdn.net/weixin_38642130/article/details/86595881 查阅了一些资料进行整理,记录学习之旅,分享给大家共同学习进步!
上个周三在Linux课上,让搭建LAMP环境,当时没搭好。周末搭的时候遇到一个百度搜不到的报错,整了一天也没解决。而在昨天晚上我成功解决了那个报错(原因是zlib库安装问题。不说了,我太菜了)。 于是今天把LAMP完整的...
支持ssl,curl开启ssl支持,环境为apache2.4+php5.6+mysql5.5,使用时请在根目录创建一个data目录,然后将源码包以及shell脚本复制到该目录,给install*文件可执行权限,然后执行installall即可。
centos6.5以上版本,源码编译搭建lamp环境,包含所需源码包以自动编译安装shell脚本,自动添加进系统变量,添加开启启动项,编译后安装后环境支持ssl,curl开启ssl支持,环境为apache2.4+php5.6+mysql5.5,使用时请...
LAMP架构搭建,linux下源码编译安装apache+mysql+php架构实操详解指导。
LAMP(Linux+Apache+Mysql+php)安装配置;刚接触linux环境安装,会徘徊源码安装还是yum安装好; yum安装软件方便些;分安装篇和配置篇、测试篇
onekey_LAMP_Script 本脚本为一键部署Apache,PHP,Mariadb,phpMyadmin,Wordpress脚本,所有软件均采用二进制包安装。 注意事项: 脚本初始化无执行权限,需执行chmod + x V3.0-onekey_LAMP + wordpress.sh赋予...
该压缩文件共5个压缩包,包含Linux系统下源码方式安装LAMP所需要的全部软件。 Linux + Apache + Php + MySQL + 扩展软件: 该压缩文件中包括一下软件: 1 libxml2-2.6.30.tar.gz 2 libmcrypt-2.5.8.tar.gz 3 zlib-...
源码包编译安装位置(prefix):/usr/local/software_name 脚本以及维护程序存放位置:/usr/local/sbin MySQL 数据库位置:/var/lib/mysql(可按情况设置) Apache 网站根目录:/var/www/wwwroot(可按情况设置) ...