httpd2.4的新特性、以及基本应用

httpd-2.4:



新特性:

(1) MPM支持运行为DSO机制;以模块形式按需加载;

(2) event MPM生产环境可用;

(3) 异步读写机制;

(4) 支持每模块及每目录的单独日志级别定义;

(5) 每请求相关的专用配置;

(6) 增强版的表达式分析式;

(7) 毫秒级持久连接时长定义;

(8) 基于FQDN的虚拟主机也不再需要NameVirutalHost指令;

(9) 新指令,AllowOverrideList;

(10) 支持用户自定义变量;

(11) 更低的内存消耗;

新模块:

(1) mod_proxy_fcgi

(2) mod_proxy_scgi

(3) mod_remoteip



CentOS 6编译安装httpd-2.4:

在CentOS 6中使用httpd-2.2依赖于apr-1.4+,apr-util-1.3.9

编译安装步骤:

(1)安装编译开发环境包组: Development tools Server Platform Development pcre-devel

(2)关闭http-2.2并关闭开机启动,防止覆盖此版本。

[[email protected] ~]# service httpd stop
Stopping httpd:                                            [  OK  ]
[[email protected] ~]# chkconfig httpd off

(3)编译安装apr-1.5.0和apr-util-1.5.3

[[email protected] apr-1.5.0]# ./configure --prefix=/usr/local/apr #apr-util依赖于apr所先编译安装apr,并指定一个不同与系统默认的安装路径。
[[email protected] apr-1.5.0]# make && make install
[[email protected] apr-1.5.0]# ls /usr/local/apr        #编译安装后生成的程序文件
bin  build-1  include  lib

[[email protected] apr-util-1.5.3]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr                         #编译apr-util,因为依赖于apr包,所以需要指定apr位置。
[[email protected] apr-util-1.5.3]# make -j 2 && make install
[[email protected] apr-util-1.5.3]# ls /usr/local/apr-util
bin  include  lib

(4)编译安装httpd-2.4

[[email protected] httpd-2.4.10]# ./configure --prefix=/usr/local/apache24 --enable-so --enable-ssl -enable-cgi --enable-rewrite --enable-modules=most --enable-mpms-shared=all --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-mpm=prefork    #--enable 表示启用的特性  --with 表示依赖的包组,不指明路径会从默认路径查找

[[email protected] httpd-2.4.10]# make -j 4 && make install
[[email protected] apache24]# ll
total 56
drwxr-xr-x  2 root root  4096 Jan 13 20:40 bin     #程序路径
drwxr-xr-x  2 root root  4096 Jan 13 20:40 build   #编译安装时产生的相关文件
drwxr-xr-x  2 root root  4096 Jan 13 20:40 cgi-bin  #cgi格式页面存放的位置
drwxr-xr-x  4 root root  4096 Jan 13 20:40 conf     #配置文件
drwxr-xr-x  3 root root  4096 Jan 13 20:40 error    #错误页面
drwxr-xr-x  2 root root  4096 Jan 13 20:33 htdocs   #网页文件存放位置
drwxr-xr-x  3 root root  4096 Jan 13 20:40 icons    #图标
drwxr-xr-x  2 root root  4096 Jan 13 20:40 include  #头文件,二次开发所用
drwxr-xr-x  2 root root  4096 Jan 13 20:40 logs     #日志
drwxr-xr-x  4 root root  4096 Jan 13 20:40 man      #man手册
drwxr-xr-x 14 root root 12288 Jul 16  2014 manual   #官方文档
drwxr-xr-x  2 root root  4096 Jan 13 20:40 modules  #模块

(5)为httpd-2.4配置环境变量,以便系统启动之

[[email protected] ~]# export PATH=/usr/local/apache24/bin:$PATH   #此种方法只对当前shell和子shell有效
[[email protected] ~]# echo $PATH
/usr/local/apache24/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 
[[email protected] ~]# vim /etc/profile.d/httpd2-4.sh    #为httpd-2.4增加环境变量,对新登陆的用户有效。

export PATH=/usr/local/apache24/bin/:$PATH    

[[email protected] conf]# apachectl start    #配置完环境变量之后就能使用自带的脚本启动httpd2.4
[[email protected] conf]# hash
hits	command
   1	/usr/bin/vim
   1	/usr/local/apache24/bin/httpd
   2	/usr/local/apache24/bin/apachectl  #由此可以看出是httpd2.4启动的而不是2.2
   3	/bin/ls
   3	/usr/sbin/ss

启动完成之后就能使用了

(6)但我们每次都使用自带的脚本启动该服务太过麻烦,我们可以复制一个http2.2的服务脚本到httpd2.4中。

[[email protected] init.d]# cp httpd httpd24
[[email protected] init.d]# vim httpd24        #复制服务脚本为2.4并编辑它

#if [ -f /etc/sysconfig/httpd ]; then   #注释原来的配置文件
#        . /etc/sysconfig/httpd
#fi

apachectl=/usr/local/apache24/bin/httpd   #指apachectl程序为httpd2.4
httpd=${HTTPD-/usr/sbin/httpd}
prog=httpd
pidfile=${PIDFILE-/usr/local/apache24/logs/httpd.pid}  #此处也制定为2.4的pid路径
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}     #更改为2.4
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}

[[email protected] init.d]# service httpd24 start    #测试结果可以使用了
Starting httpd: 
[[email protected] init.d]# service httpd24 status
httpd (pid  35131) is running...
[[email protected] init.d]# service httpd24 stop
Stopping httpd:                                            [  OK  ]
[[email protected] init.d]# service httpd24 start
Starting httpd:                                            [  OK  ]


CentOS 7:



yum install httpd

配置文件:

/etc/httpd/conf/httpd.conf

/etc/httpd/conf.modules.d/*.conf

/etc/httpd/conf.d/*.conf

配置应用:

(1)切换使用的MPM



编辑配置文件/etc/httpd/conf.modules.d/00-mpm.conf

[[email protected] ~]# vim /etc/httpd/conf.modules.d/00-mpm.conf   

# Select the MPM module which should be used by uncommenting exactly
# one of the following LoadModule lines:

# prefork MPM: Implements a non-threaded, pre-forking web server
# See: http://httpd.apache.org/docs/2.4/mod/prefork.html
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so      

# worker MPM: Multi-Processing Module implementing a hybrid
# multi-threaded multi-process web server
# See: http://httpd.apache.org/docs/2.4/mod/worker.html
#
#LoadModule mpm_worker_module modules/mod_mpm_worker.so       #需要开启该MPM就把原来的注释掉

# event MPM: A variant of the worker MPM with the goal of consuming
# threads only for connections with active processing
# See: http://httpd.apache.org/docs/2.4/mod/event.html
#
#LoadModule mpm_event_module modules/mod_mpm_event.so

(2)基于IP的访问控制:(2.4中任何网页需要进行明确授权才能被访问)


[[email protected] conf]# vim httpd.conf
<Directory "/var/www/html">       
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn‘t give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Require all granted                      #需要在此为根文档目录改为所有人访问
    #Require all deny                        #不允许所有主机访问
    #<RequireAll>                            #表示除了指定ip不能访问。
#		Require all granted 
#		Require not ip 172.16.100.2
    #</RequireAll>               
 </Directory>

控制特定的IP访问:

Require  ip  IPADDR:授权指定来源的IP访问;

Require  not  ip  IPADDR:拒绝

控制特定的主机访问:

Require  host  HOSTNAME:授权指定来源的主机访问;

Require  not  host  HOSTNAME:拒绝

HOSTNAME:

FQDN:特定主机

domin.tld:指定域名下的所



(3) 虚拟主机



基于FQDN的虚拟主机不再需要NameVirutalHost指令;

时间: 2024-12-28 06:42:06

httpd2.4的新特性、以及基本应用的相关文章

Httpd-2.4的新特性

Httpd-2.4的新特性 一.新特性 MPM支持运行运行DSO机制,以模块形式按需加载 Event MPM生产环境可用 异步读写机制 支持每模块及每目录的单独日志级别定义 每请求相关的专用配置 增强版的表达式分析式 毫秒级持久连接时长定义 基于FQDN的虚拟主机不再需要NameVirtualHost指令 新指令,AllowOverrideList 支持用户自定义变量 更低的内存消耗 二.Httpd 2.4新模块介绍 Httpd 2.4新模块介绍 mod_proxy_fcgi 支持PHP等动态语

centos7之httpd-2.4的新特性

一.常用httpd-2.4新特性 1) MPM支持在运行时装载: 编译时加上此,支持mpm:--enable-mpms-shared=all --with-mpm=event 2) 支持event 3) 异步读写 4) 在每模块及每目录上指定日志级别 5) 每请求配置 6) 增强版的表达式分析器 7) 毫秒级的keepalive timeout 8) 基于FQDN的虚拟主机不再需要NameVirtualHost指令 9) 支持使用自定义变量 10)新增了一些模块:mod_proxy_fcgi,

httpd2.4新特性

新特性: MPM支持运行DSO机制,以模块形式按需加载 支持event MPM 支持异步读写 支持每模块及每个目录分别使用各自的日志级别 每请求配置 <If> 增强版的表达式分析器 支持毫秒级的keepalive timeout 基于FQDN的虚拟主机不再需要NameVirtualHost指令 支持用户自定义变量 新模块 mod_proxy_fcgi mod_ratelimit mod_remoteip 修改了一些配置机制 不再支持使用Order,Deny,Allow来做基于IP的访问控制  

编译安装httpd-2.4.9及新特性详解

前言 前面我们讲解了httpd在CentOS6上(httpd-2.2)的相关功能配置,而CentOS7上采用了httpd-2.4的版本,那么httpd-2.4增加了哪些特性呢?接下来让我们在CentOS6.6上手动编译安装一下httpd-2.4.9,看一下和httpd-2.2有什么不同,顺便补充说一下httpd的其它功能. 环境及新特性介绍 环境介绍 系统环境:CentOS6.6 所需软件包:apr-1.5.0.tar.bz2.apr-util-1.5.3.tar.bz2.httpd-2.4.9

Linux运维实战之Apache2.4编译安装及其新特性

上次博文我们具体讨论了Apache(httpd)的理论知识和配置: HTTP协议基础(参见博文:http://sweetpotato.blog.51cto.com/533893/1656137) Apache2.2的基本配置(参见博文:http://sweetpotato.blog.51cto.com/533893/1657668) Apache2.2的虚拟主机(参见博文:http://sweetpotato.blog.51cto.com/533893/1660229) 基于https的Apac

apache2.4:apache的安装及其新特性

小生博客: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运行时更改 但是要开启这种特性,在编译安装要启用这三种功能:--e

web服务之httpd及其新特性

概述 http协议及httpd的一些特性,是学习web服务需要掌握的一些基础知识,接下来让我们进一步了解httpd相关功能的配置,本文讲解的web服务之httpd新特性及其虚拟主机,访问控制及https等功能的配置. httpd之基本特性 实验环境介绍 开始之前,先介绍一下httpd在CentOS6.8版本及文件: 版本:httpd-2.2.27(centos7默认为2.4以上的版本) 主配置文件: /etc/httpd/conf/httpd.conf 其他配置文件如虚拟主机及其ssl.虚拟主机

web新特性 之 WebSocket

详情参见:你真的了解WebSocket吗?     WebSocket系列教程   HTML5新特性之WebSocket WebSocket协议是基于TCP的一种新的协议.WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符.它实现了浏览器与服务器全双工(full-duplex)通信.其本质是保持TCP连接,在浏览器和服务端通过Socket进行通信. 服务端与客户端的连接不断开,实现全双工的操作.及服务端或是客户端都会给对方发送消息. WebSocke

Java精品高级课,架构课,java8新特性,P2P金融项目,程序设计,功能设计,数据库设计,第三方支付,web安全,视频教程

36套精品Java架构师,高并发,高性能,高可用,分布式,集群,电商,缓存,性能调优,设计模式,项目实战,P2P金融项目,大型分布式电商实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  cloud.Dubbo.Elasticsearch,Redis.ActiveMQ.Nginx.Mycat.Spring.MongoDB.ZeroMQ.Git.Nosql.Jvm.Mecached.Netty.Nio.Mina.java8新特性,P2P金融项目,程序设计,