一、安装Apache2.4版本;
二、Apache服务的三种工作模式详解;
三、修改apache的工作模式;
四、apache工作模式的优化与修改;
五、进程与线程的区别。
apache是一个模块化设计的服务,所谓的模块化就是将各个功能,特性都独立的分开,这样设计的好处是可扩展性强,各个功能之间的依赖性相对较弱,在后期修改,升级,添加新功能是非常方便。不同的模块可以静态的编译进程序,也可以被动态加载。动态加载是apache的特性(DSO,dynamic shared object),所谓的动态加载就需要新的功能的时候,只需将功能模块编译出来,通过配置文件加载到apache服务中,而不需要重新编译apache.
apache的版本有2.0、2.2、2.4三个版本使用较多,每个版本使用安装都有少许差异,我今天介绍的是2.4的版本,兄弟们使用的话要看仔细了,
Apache服务新版本2.4新增特性介绍:
新增模块
mod_proxy_fcgi(可提供 fcgi 代理)
mod_ratelimit(限制用户带宽)
mod_request(请求模块,对请求做过滤)
mod_remoteip(匹配客户端的 IP 地址)
对于基于 IP 的访问控制做了修改,不再支持 allow,deny,order 机制,而是统一使用 require进行。
还新增以下几条新的特性:
MPM 支持在运行时装载且支持 event
支持异步读写
在每个模块及每个目录上指定日志级别
增强版的表达式分析器
每请求配置: <If>, <Elseif>
毫秒级别的 keepalive timeout
基于 FQDN 的虚拟主机不再需要 NameVirtualHost 指令
支持使用自定义变量
一、安装Apache2.4
安装环境:操作系统: Centos7.2,关闭 selinux
检查 httpd 包是否安装,如安装则卸载。
下载源码包:
httpd-2.4.23.tar.gz
apr-1.5.2.tar.gz
apr-util-1.5.4.tar.gz
zlib-1.2.8.tar.gz
pcre-8.39.tar.gz
注: apr(Apache Portable Runtime)Apache 可移植运行库, 它是一个对操作系统调用的抽
象库,用来实现 Apache 内部组件对操作系统的使用,提高系统的可移植性
链接: https://pan.baidu.com/s/1km0qEYh556OtEygqc7I1GQ
1.开始安装
[[email protected] ~]# rz
#xshell中,使用rz命令将下载的tar包上传至web服务器
#以下是将所有源码包解压缩
[[email protected] ~]# tar zxf openssl-1.0.1u.tar.gz -C /usr/src
[[email protected] ~]# tar zxf pcre-8.39.tar.gz -C /usr/src
[[email protected] ~]# tar zxf zlib-1.2.8.tar.gz -C /usr/src
[[email protected] ~]# tar zxf httpd-2.4.23.tar.gz -C /usr/src
[[email protected] ~]# tar zxf apr-1.5.2.tar.gz -C /usr/src
[[email protected] ~]# tar zxf apr-util-1.5.4.tar.gz -C /usr/src
#以下开始安装apache所需依赖包
[[email protected] ~]# cd /usr/src/apr-1.5.2/
[[email protected] apr-1.5.2]# ./configure --prefix=http://www.mamicode.com/usr/local/apr && make && make install
[[email protected] apr-1.5.2]# cd ../apr-util-1.5.4/
[[email protected] apr-util-1.5.4]# ./configure --prefix=http://www.mamicode.com/usr/local/apr-util --with-apr=http://www.mamicode.com/usr/local/apr && make && make install
[[email protected] zlib-1.2.8]# cd ../zlib-1.2.8/
[[email protected] zlib-1.2.8]# ./configure --prefix=http://www.mamicode.com/usr/local/zlib && make && make install
[[email protected] pcre-8.39]# cd ../pcre-8.39/
[[email protected] pcre-8.39]# ./configure --prefix=http://www.mamicode.com/usr/local/pcre && make && make install
[[email protected] pcre-8.39]# cd ../openssl-1.0.1u/
[[email protected] openssl-1.0.1u]# ./config -fPIC --prefix=http://www.mamicode.com/usr/local/openssl enable-shared && make && make install
#依赖安装完成后,开始安装http服务
[[email protected] openssl-1.0.1u]# cd ../httpd-2.4.23/
[[email protected] httpd-2.4.23]# ./configure --prefix=http://www.mamicode.com/usr/local/http-2.4.23 --enable-so --enable-cgi --enable-cgid --enable-ssl --with-ssl=http://www.mamicode.com/usr/local/openssl --enable-rewrite --with-pcre=http://www.mamicode.com/usr/local/pcre --with-z=http://www.mamicode.com/usr/local/zlib --with-apr=http://www.mamicode.com/usr/local/apr --with-apr-util=http://www.mamicode.com/usr/local/apr-util -enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event --enable-proxy --enable-proxy-fcgi --enable-expires --enable-deflate && make && make install
[[email protected] httpd-2.4.23]# cd /usr/local/http-2.4.23/bin/
[[email protected] bin]# ln -sf /usr/local/http-2.4.23/bin/* /usr/local/bin/ #将apache的命令做软链接
[[email protected] bin]# apachectl start
#启动apache服务,会提示以下信息,无所谓的。
#若想解决,只需在apache的主配置文件中添加域名即可
AH00558: httpd: Could not reliably determine the server‘s fully qualified domain name, using fe80::c94:cd92:5c18:a1. Set the ‘ServerName‘ directive globally to suppress this message
关于安装apache服务时的配置项,相关解释如下: