Httpd-2.4的新特性
一、新特性
MPM支持运行运行DSO机制,以模块形式按需加载
Event MPM生产环境可用
异步读写机制
支持每模块及每目录的单独日志级别定义
每请求相关的专用配置
增强版的表达式分析式
毫秒级持久连接时长定义
基于FQDN的虚拟主机不再需要NameVirtualHost指令
新指令,AllowOverrideList
支持用户自定义变量
更低的内存消耗
二、Httpd 2.4新模块介绍
Httpd 2.4新模块介绍
mod_proxy_fcgi 支持PHP等动态语言
mod_proxy_scgi SCGI Protocol,支持Python
mod_remoteip 获取远端真实访问IP
httpd2.4新模块详细介绍官方文档
http://httpd.apache.org/docs/2.4/new_features_2_4.html
三、安装httpd2.4
依赖于Apr-1.4以上版本,apr-until-1.4+ ,[Apr-icon]
Apache portable runtime apache可移植环境
Centos6:
默认:apr-1.39版,apr-until-1.39版,因此如果想在centos6使用httpd2.4需要编译安装。
开发环境包组:Development Tools,Server Platfrom Development
开发程序包:Pcre-devel
Yum installpcre-devel
yum install openssl-devel
编译安装步骤:
1、 apr-1.4版本以上的apr
2、 apr-untl-1.4版本以上的apr- unti
3、 httpd2.4
1、编译apr
./configure --prefix=/usr/local/apr
Make && make install
2、编译apr-util
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
Make && make install
3、编译httpd
./configure --prefix=/usr/local/apache24 --enable-so--enable-ssl --enable-cgi --enable-rewrit --with-zlib--with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modeles=most --enable-mpms-shared=all --with-mpm=prefork
在这过程中可能会应为openssl报错 yum install openssl-devel (笔者利用阿里源安装,本地原安装时缺少依赖包。)
make && make install
自带的服务控制脚本:apachectl
4、配置环境变量
[[email protected]_1 ~]# vim /etc/profile.d/wanghttp.sh (名称随意)
PATH=$PATH:/usr/local/wanghttp/bin
[[email protected]_1 ~]# source /etc/profile.d/wanghttp.sh
5、库文件 添加动态链接库路径
[[email protected]_1~]# vim /etc/ld.so.conf.d/wanghttp.conf
/usr/local/apache24/lib
[[email protected]_1~]# ldconfig
6、头文件
[[email protected]_1 ~]# ln -s /usr/local/apache24/include//usr/include/apache24
7、添加man帮助
[[email protected]_1~]# vim /etc/man_db.conf
MANPATH /usr/local/apache24/man
[[email protected]_1~]# mandb #重新生成mandb
8、生成服务
[[email protected]_1 ~]# Vim /usr/lib/system/system/apachectl.service
[Unit]
Description=apachectl
After=multi-user.target
[Service]
Type=forking
ExecStart=/usr/local/apache24/bin/apachectlstart
ExecReload=/usr/local/apache24/bin/apachectlrestart
ExecStop=/usr/local/apache24/bin/apachectl stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Centos7
Yum install httpd
配置文件
/etc/httpd/httpd.conf
/etc/httpd/conf.modules.d/*.conf
/etc/http/conf.d/*.conf
配置应用
1、 切换使用MPM
编辑配置文件/etc/httpd/conf.modules.d/00-mpm.conf,启用要启用的MPM想关的LoadModules指令即可。
2、 基于IP地址的访问控制
允许所有主机访问:Require all granted
拒绝所有主机访问:Rrquire all deny
3、控制特定的ip访问
Requireip IPADDR :授权指定来源的主机访问
Requirenot ip IPADDR :拒绝
4、控制特定的主机访问
Requirehost HOSTNAME :授权指定的主机访问
Requirenot host HOSTNAME 拒绝
HOSTANME:
FQDN:特定主机
Domin.tld:指定域名下的所有主机
示例:
<RequireALL>
Require all granted
Require not ip172.16.252.16
</RequireALL>
四、虚拟主机的配置
基于FQDN的虚拟主机不在需要NameVirutalHost指令
Centos7虚拟主机需要单独授权
<VirtualHost172.16.250.240:80> DocumentRoot /apps/www/html/ ServerName www.linuxinfo.top ErrorLog logs/www.linuxinfo-error_log Customlog logs/www.linuxinfo-access_log common <Directory "/apps/www/html/"> Options None AllowOverride None Require all granted </Directory> </VirtualHost>
注意:任意目录下的需要只有显示授权才能访问。