http-2.4

1)新特性
(1)MPM 支持运行为DSO 机制;以模块形式按需加载
(2)event MPM 生产环境可用
(3)异步读写机制
(4)支持每模块及每目录的单独日志级别定义
(5)每请求相关的专用配置
(6)增强版的表达式分析式
(7)毫秒级持久连接时长定义
(8)基于FQDN 的虚拟主机不需要NameVirutalHost 指令
(9)新指令,AllowOverrideList
(10)支持用户自定义变量
(11)更低的内存消耗
2)修改了一些配置机制
不再支持使用Order, Deny, Allow 来做基于IP 的访问控制
3)新模块
(1) mod_proxy_fcgi
FastCGI Protocol backend for mod_proxy
(2) mod_remoteip
Replaces the apparent client remote IP address and hostname for the request with the IP address list presented by a proxies or a load balancer via the request headers.
(3) mod_ratelimit
Provides Bandwidth Rate Limiting for Clients 4)centos7 httpd程序环境
1)CentOS 7 :httpd-2.4
2)安装方法:rpm ,编译安装
3)Rpm 安装的程序环境:
配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
模块相关的配置文件:
/etc/httpd/conf.modules.d/*.conf
systemd unit file
/usr/lib/systemd/system/httpd.service
主程序文件:
/usr/sbin/httpd
httpd-2.4 支持MPM
日志文件:
/var/log/httpd
access_log :访问日志
error_log :错误日志
站点文档:
/var/www/html
模块文件路径:
/usr/lib64/httpd/modules
服务控制:
systemctl {enable|disable} httpd.service
systemctl {start|stop|restart|status} httpd.service 5)配置
配置应用 :
(1)切换使用的MPM
Centos7:
/etc/httpd/conf.modules.d/00-mpm.conf
启用要启用的MPM相关的LoadModule 指令即可
centos6 编译安装:
vim /etc/httpd24/httpd.conf
Include /etc/httpd24/extra/httpd-mpm.conf
LoadModule mpm_event_module
modules/mod_mpm_event.so
(2)主目录:
DocumentRoot /path
(3)基于IP的访问控制:
无明确授权的目录,默认拒绝
允许所有主机访问:Require all granted
拒绝所有主机访问:Require all denied
控制特定的IP访问:
Require ip IPADDR:授权指定来源的IP访问
Require not ip IPADDR:拒绝特定的IP访问
控制特定的主机访问:
Require host HOSTNAME:授权特定主机访问
Require not host HOSTNAME:拒绝特定主机访问
HOSTNAME:
FQDN:特定主机
domin.tld:指定域名下的所有主机
不能有失败,至少有一个成功匹配
<RequireAll>
Require all granted
Require not ip 172.16.100.2 拒绝特定IP
</RequireAll>
多个语句有一个成功,即成功
<RequireAny>
……
</RequireAny>
(4)虚拟主机
基于FQDN 的虚拟主机也不再需要NameVirutalHost 指令
<VirtualHost *:80>
ServerName www.b.net
DocumentRoot "/apps/b.net/htdocs"
<Directory "/apps/b.net/htdocs">
Options None
AllowOverride None ##Apache是否允许另一配置文件覆盖现有配置文件。
Require all granted
</Directory>
</VirtualHost>
注意:任意目录下的页面只有显式授权才能被访问
(5) ssl: 安装mod_ssl,和httpd-2.2 相同配置
(6) KeepAlive on
KeepAliveTimeout #ms
MaxKeepAliveRequests 100
毫秒级持久连接时长定义
(7)cento7上实现虚拟主机
vim /etc/httpd/conf.d/vhosts.conf
<virtualhost *:80 >
servername www.a.com
documentroot "/app/a.com/"
ProxyPass "/" "http://www.a.com:8080/" ##请求转发
ProxyPassReverse "/" "http://www.a.com:8080/" ##配置总是和ProxyPass 一致,它的作用在于反向代理,如果响应中有302重定向,ProxyPassReverse就派上用场。
<directory /app/a.com>
Require all granted
</directory>
</virtualhost> listen 8080
<virtualhost *:8080 >
servername www.b.com
documentroot "/app/b.com/"
<directory /app/b.com>
Require all granted
</directory>
</virtualhost> <virtualhost *:80 >
servername www.c.com
<directory /app/c.com>
Require all granted
</directory>
documentroot "/app/c.com/"
</virtualhost> 在centos6编译安装httpd-2.4
安装httpd-2.4
依赖于apr-1.4+, apr-util-1.4+, [apr-iconv]
apr:apache portable runtime ,解决跨平台实现
CentOS 6 :默认:apr-1.3.9, apr-util-1.3.9
安装前准备开发包:
开发环境包组:
Development Tools,Server
开发程序包:pcre-devel ,openssl-devel
下载源代码并解压缩:
http://www.apache.org/index.html#projects-list
apr-1.5.2.tar.bz2
apr-util-1.5.4.tar.bz2
httpd-2.4.27.tar.bz2
(1) 安装apr-1.4+
./configure --prefix=/usr/local/apr
make && make install
(2) 安装apr-util-1.4+
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
(3) 编译安装httpd-2.4
./configure --prefix=/usr/local/httpd24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
make && make install
或者下面方法
1》mv apr-1.5.2/ httpd-2.4.27/srclib/apr
2》mv apr-util-1.5.4/ httpd-2.4.27/srclib/apr-util
3》cd httpd-2.4.27/
4》./configure --prefix=/usr/local/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
5》Make && make install
6》Httpd 编译过程:/usr/local/apache24/build/config.nice
7》自带的服务控制脚本:/usr/local/httpd24/bin/apachectl
8》vim /etc/profile.d/httpd24.sh
export PATH=/app/http24/bin:$PATH
9》vim /etc/man.config
MANPATH /usr/local/apache24/man
10》自定义启动脚本( 参考httpd-2.2 的服务脚本)
cp /etc/rc.d/init.d/httpd /etc/rc.d/init.d/httpd24
vim /etc/rc.d/init.d/httpd24
apachectl=/usr/local/httpd24/bin/apachectl
httpd=${HTTPD-/usr/local/httpd24/bin/httpd}
pidfile=${PIDFILE-/usr/local/httpd24/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
chkconfig –add httpd24 ;chkconfig –list httpd24

随机推荐

  1. 13-看图理解数据结构与算法系列(Trie树)

    Trie树 Trie树,是一种搜索树,也称字典树或单词查找树,此外也称前缀树,因为某节点的后代存在共同的前缀.它的key都为字符串,能做到高效查询和插入,时间复杂度为O(k),k为字符串长度,缺点是如 ...

  2. hihoCoder#1077 RMQ问题再临-线段树

    原题地址 终于做到线段树的题了,因为建树.更新.查询都是递归操作,所以其实挺好写的. 用数组存的树,记得MAX_NODE开成两倍叶节点数大小,否则RE啊..不要问我是怎么知道的. 代码: #inclu ...

  3. hdu 5029树链剖分

    /* 解:标记区间端点,按深度标记上+下-. 然后用线段树维护求出最小的,再将它映射回来 */ #pragma comment(linker, "/STACK:102400000,10240 ...

  4. Django:(4)Django和Ajax

    向服务器发送请求的途径: 1. 浏览器地址栏,默认get请求 2. form表单: get请求: post请求 3. a标签,默认get请求 4. Ajax:get请求:post请求 Ajax的特点( ...

  5. 听dalao讲课 7.26

    XFZ今天讲了些关于多项式求ln和多项式求导以及多项式求积分的东西 作为一个连导数和积分根本就不会的蒟蒻,就像在听天书,所以不得不补点前置知识 1.积分 积分是微积分学与数学分析里的一个核心概念.通常 ...

  6. msp430入门编程07

    msp430中C语言的函数及实现07 msp430中C语言操作端口I/O10 msp430中C语言的模块化头文件及实现11 msp430中C语言的模块化头文件及库文件12 msp430入门学习 msp ...

  7. msp430入门编程0

    msp430单片机最小系统 msp430入门学习 msp430入门编程

  8. BZOJ——2190: [SDOI2008]仪仗队

    思路: 我们将其所在的位置设为(0,0),那么如果存在一个点(x,y),且有gcd(x,y)=k(k!=1),那么点(x/k,y/k)一定会将(x,y)挡住.而如果k=1,那么点(x,y)就一定会被看 ...

  9. openOffice word转pdf,pdf转图片优化版

    之前写了一个版本的,不过代码繁琐而且不好用,效率有些问题.尤其pdf转图片速度太慢.下面是优化版本的代码. spriing_boot 版本信息:2.0.1.RELEASE 1.配置信息: packag ...

  10. android账号与同步之账号管理

    在android提供的sdk中,samples文件夹下有一个叫SampleSyncAdapter的演示样例,它是一个账号与同步的实例,比方Google原始的android手机能够使用Google账号进 ...