小生博客:http://xsboke.blog.51cto.com
小生 Q Q:1770058260
-------谢谢您的参考,如有疑问,欢迎交流
一、 Apache2.4新特性
1. 新增模块
Mod_proxy_fcgi:提供fcgi代理
Mod_ratelimit:限制用户带宽
Mod_request:过滤客户机请求
Mod_remoteip:匹配客户端的IP
2. 新特性
Mpm(工作模式):支持工作模式在apache运行时更改
但是要开启这种特性,在编译安装要启用这三种功能:--enable-mpms-shared=all --with-mpm=event
完善了event模式
支持使用自定义变量
基于FQDN的虚拟主机不再需要NameVirtualHost指令
增强版的表达式分析器
支持异步读写
毫秒级别的keepalivetimeout
二、 Apache2.4.23安装
1. 安装包简介
httpd-2.4.23.tar.gz:主程序包
apr-1.5.2.tar.gz:可移植运行库,用于支持httpd2.4
apr-util-1.5.4.tar.gz:apr的关联包
zlib-1.2.8.tar.gz:支持压缩算法
pcre-8.39.tar.gz:支持正则表达式
openssl-1.0.1u.tar.gz:为了支持加密传输,centos7.2默认安装1.0.1e版本,而apache2.4需要1.0.1u及以上版本支持
2. 安装
安装apr和apr-util
安装zlib
安装pcre
安装openssl
因为旧版本的openssl命令还存在,为了防止以后可能用到,暂时不删除,将旧版本的opensll执行
脚本名称更改,然后将新版本的opensll脚本链接到/usr/bin/
安装apache2.4.23
--enable-so:支持动态加载模块(即打开DSO支持)
--enable-rewrite:支持地址重写
--enable-ssl:支持ssl加密
--with-ssl=/usr/local/openssl:指定ssl安装位置
--enable-cgi:启用cgi
--enable-cgid: 为了支持event和worker
--enable-modules=most:明确指明要静态编译到httpd二进制文件的模块,<MODULE-LIST>为空格分隔的模块名列表、all或者most,all表示包含所有模块,most表示包含大部分常用模块
--enable-mods-shared=most:明确指明要以DSO(动态)方式编译的模块,<MODULE-LIST>为空格分隔的模块名列表、all或者most,all表示包含所有模块,most表示包含大部分模块
--enable-mpms-shared=all:启用MPM所有支持的模式,这样event、worker、prefork就会以模块化的方式安装,要用哪个就在 httpd.conf 里配置就好了。
--with-mpm=event:指定启用的mpm模式,默认使用enevt模式,在apache的早期版本2.0默认prefork,2.2版本是worker,2.4版本是event.
--with-pcre=/usr/local/pcre:支持pcre
--with-z=/usr/local/zlib:使用zlib压缩库
--with-apr=/usr/local/apr:指定apr的安装路径
--with-apr-util=/usr/local/apr-util:指定apr-util的安装路径
--enable-expires:为客户端浏览器提供缓存功能
--enable-deflate:提供对内容的压缩传输编码支持
3. 优化httpd程序执行路径
软链接
修改httpd.conf配置文件,设置ServerName的值
配置httpd的脚本文件
将httpd服务添加为系统服务,并且启动
查看服务状态报错,提示lynx命令找不到,使用yum安装即可
安装lynx后依旧报错:您没有在此服务器上访问/服务器状态的权限,如下图
解决办法
首先修改httpd主配置文件
然后修改模版配置文件
/usr/local/http-2.4.23/conf/extra/ httpd-info.conf
然后修改httpd的脚本文件/etc/init.d/httpd,查看服务状态信息的时候使用的地址为本地回环地
址(IP地址)
最后开启防火墙例外
三、 关于apache2.4新特性:DSO
当apache在安装后,突然需要某个模块,但是这个模块没有安装;这时候我们有俩种方法解决,第一种就是卸载apache,然后在重装的时候添加此模块,第二种方法就是使用MPM新特性DSO,支持apache在运行时装载模块
1. 首先解压apache源码包,并且找到模块的存放位置
2. 然后使用命令“apxs -c -I -a 模版名”安装模版
-c编译,-i安装,-a在安装完成后,自动将配置参数添加到apache的配置文件中
3.有些模版使用上面的命令可能装不上,这时使用命令“apxs -c -i -a -I /usr/local/zlib/include 模版名”安装即可
4. 查看模版的命令
Apachectl -l :只查看编译到httpd的二进制模版
Apachectl -M:查看httpd已经安装的模版,status为静态,shared是动态
Apachectl -t -D DUMP_MODULES:查看httpd已经安装的模版
原文地址:http://xsboke.blog.51cto.com/12096269/1917536