Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29954510
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: 系统运维

2010-08-26 14:18:46

Apache学习笔记01

时间:2010-8-26

| 本篇译者:() | 本页最后更新:200831

1.     Apache2.2新特性概述

核心增强

1.1    认证/授权  

原本是将认证模块与授权模块合并在一块的,现在将其分开处理。

1.2    缓冲

如下几个模块:mod_cachemod_disk_cachemod_mem_cache经过修改现在已经比较好了另外新增加了htcacheclean工具可以清理mod_disk_cache使用的缓冲存储区。

1.3    配置

现在是把常用的配置片段单独出来,想要加到主配置文件中也是比较容易做到

1.4    优雅停止

现在preforkworkerevent多路处理模块(MPM)现在允许httpd通过graceful-stop信号优雅的停止,另外新增的gracefulshutdowntimeout指令指定了一个超时时间,超过超时的时间以后就会httpd将会强行中止掉。

1.5    代理

新增加mod_proxy_balancer模块为mod_proxy提供了负载均衡服务,新增加的mod_proxy_ajp模块为apache tomcat使用的apache jserv protocol version提供了支持

1.6    正则表达式库更新

Httpd现在可以通过—with-pcre选项就可以使用系统中已经安装好的PCRE

1.7    智能过滤器

Mod_filter可以进行输出过滤器链的动态配置。它允许过滤器按照请求头或应答头或环境变量有条件的插入。

1.8    大文件支持

现在能够处理大于2G的请求体。

1.9    Event MPM

现在event的多路处理模块使用一个单独隔开的线程持久连接(keep alive)。一般来讲持久连接的话是专门拿出一个(job)来处理它的。这个专用的job在持久连接超时前不能被重新使用。

2.0 SQL数据库支持

    Mod_dbdapr_dbd框架一起为需要使用数据库的模块提供直接的支持。

    目前这个特性还没有包含在WIN平台。

 

 

2.     编译与安装

2.1 编译apache的要求如下

2.1.1磁盘空间

      必须保证有50MB以上的自由临时磁盘空间。因为apache在安装完毕之后会占据大概10MB左右的空间

2.1.2 ANSI-C编译器及编译环境

    必须要装有GCC。最好推荐是使用它来编译!

2.1.3 确保准确的时间

    要确保我们的系统的时候同步。在基于网络时间协议(NTP)系统中一般是用 ntpdate来同步时间的

2.1.4          Apr/apr-util >= 1.2

aprapr-util包含在Apache httpd的发行源代码中,并且在绝大多数情况下使用都不会出现问题。当然,如果aprapr-util1.01.1版本已经安装在你的系统中了,则必须将你的apr/apr-util升级到1.2版本,或者将httpd单独分开编译。要使用发行源代码中自带的apr/apr-util源代码进行安装,你必须手动完成:

# 编译和安装 apr 1.2
cd srclib/apr
./configure --prefix=/usr/local/apr-httpd/
make
make install

#
编译和安装 apr-util 1.2
cd ../apr-util
./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/usr/local/apr-httpd/
make
make install

#
配置 httpd
cd ../../
./configure --with-apr=/usr/local/apr-httpd/ --with-apr-util=/usr/local/apr-util-httpd/

 

 

用于aprconfigure脚本的选项:

可选特性

--enable-experimental-libtool

启用试验性质的自定义libtool

--disable-libtool-lock

取消锁定(可能导致并行编译崩溃)

--enable-debug

启用调试编译,仅供开发人员使用。

--enable-maintainer-mode

打开调试和编译时警告,仅供开发人员使用。

--enable-profile

打开编译profiling(GCC)

--enable-pool-debug[=yes|no|verbose|verbose-alloc|lifetime|owner|all]

打开pools调试

--enable-malloc-debug

打开BeOS平台上的malloc_debug

--disable-lfs

32-bit平台上禁用大文件支持(large file support)

--enable-nonportable-atomics

若只打算在486以上的CPU上运行Apache ,那么使用该选项可以启用更加高效的基于互斥执行的原子操作。

--enable-threads

启用线程支持,在线程型的MPM上必须打开它

--disable-threads

禁用线程支持,如果不使用线程化的MPM ,可以关闭它以减少系统开销。

--disable-dso

禁用DSO支持

--enable-other-child

启用可靠子进程支持

--disable-ipv6

禁用IPv6支持

可选的额外程序包

--with-gnu-ld

指定C编译器使用 GNU ld

--with-pic

只使用 PIC/non-PIC 对象[默认为两者都使用]

--with-tags[=TAGS]

包含额外的配置

--with-installbuilddir=DIR

指定APR编译文件的存放位置(默认值为:'${datadir}/build')

--without-libtool

禁止使用libtool连接库文件

--with-efence[=DIR]

指定Electric Fence的安装目录

--with-sendfile

强制使用sendfile(译者注:Linux2.4/2.6内核都支持)

--with-egd[=DIR]

使用EDG兼容的socket

--with-devrandom[=DEV]

指定随机设备[默认为:/dev/random]

用于apr-utilconfigure脚本的选项:

可选的额外程序包

--with-apr=PATH

指定APR的安装目录(--prefix选项值或apr-config的路径)

--with-ldap-include=PATH

ldap包含文件目录(带结尾斜线)

--with-ldap-lib=PATH

ldap库文件路径

--with-ldap=library

使用的ldap

--with-dbm=DBM

选择使用的DBM类型DBM={sdbm,gdbm,ndbm,db,db1,db185,db2,db3,db4,db41,db42,db43,db44}

--with-gdbm=PATH

指定GDBM的位置

--with-ndbm=PATH

指定NDBM的位置

--with-berkeley-db=PATH

指定Berkeley DB的位置

--with-pgsql=PATH

指定PostgreSQL的位置

--with-mysql=PATH

参看INSTALL.MySQL文件的内容

--with-sqlite3=PATH

指定sqlite3的位置

--with-sqlite2=PATH

指定sqlite2的位置

--with-expat=PATH

指定Expat的位置或'builtin'

--with-iconv=PATH

iconv的安装目录

 

 

3.     解压

$ gzip -d httpd-NN.tar.gz
$ tar xvf httpd-NN.tar

 

4.     配置configure

具体选项可以参考转载的文章。

此例演示编译Apache ,并将其安装在/sw/pkg/apache目录,指定了一个特定的编译器以及编译参数,而且允许今后将两个附加的模块通过DSO机制在运行时动态加载:

$ CC="pgcc" CFLAGS="-O2" \
./configure --prefix=/sw/pkg/apache \
--enable-rewrite=shared \
--enable-speling=shared

5.     编译与安装make && make install

6.     修改配置文件 vi prefix/conf/httpd.conf 文件

7.     启动服务

$ PREFIX/bin/apachectl -k start

$ PREFIX/bin/apachectl -k stop

8.     升级

升级的第一步是阅读源代码目录中的发布公告(release announcement)CHANGES文件以寻找可能会对你的站点产生影响的变化。如果主板本号的变化(例如1.3→2.02.0→2.2)表明编译时和运行时的配置发生了重大变化,需要手动调整,所有模块也需要升级以兼容新版本的模块API

小幅度的版本升级(例如:2.2.55→2.2.57)很容易。make install 的过程不会改写任何已经存在的文档、日志、配置文件。此外,开发者也会尽量兼容上一版本的选项、运行时配置、模块API 。大多数情况下,你将能够使用与上一版本完全相同的命令行和运行时配置,而你原来的所有模块也将正常工作。

如果你保存了上一次安装后build子目录中的config.nice文件,升级将更加平滑。这个文件精确地保存了所有对目录树进行配置的命令行。你只需要将config.nice文件复制到新的源代码目录树的根文件夹并进行你希望的修改后,然后运行下面的命令即可完成升级:

$ ./config.nice
$ make
$ make install
$ PREFIX/bin/apachectl -k graceful-stop
$ PREFIX/bin/apachectl -k start

你应该总是在将新版本的Apache投入正式运行前,对这个新版本进行足够的、针对你的实际运行环境的测试。比如,你可以使用一个不同的 --prefix 设置将新版本安装在一个不同的目录,并使用指令在一个不同的端口监听。经过一段时间的测试以发现可能存在的问题,然后再做出最后的决定。

 

阅读(923) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~