配置Apache服务

Apache简介(Web服务器)
Apache HTTP Server是广泛应用的Web应用系统之一,要运用好它,必须先了解它的特点及其编译安装过程。
Apache HTTP Server 是开源软件项目的杰出代表,基于标准HTTP网络协议提供网页浏览服务,在Web服务器领域中长期保持着超过半数的份额。Apache服务器可以运行在Linux、UNIX、Windows等多种操作系统平台中。
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。
发展历史
Apache 起初由伊利诺伊大学香槟分校的国家超级电脑应用中心(NCSA)开发。此后,Apache 被开放源代码团体的成员不断的发展和加强。Apache 服务器拥有牢靠可信的美誉,已用在超过半数的因特网站中-特别是几乎所有最热门和访问量最大的网站。
Apache最开始是Netscape网页服务器之外的开放源代码选择。后来它开始在功能和速度超越其他的基于Unix的HTTP服务器。1996年4月以来,Apache一直是Internet上最流行的HTTP服务器: 1999年5月它在 57% 的网页服务器上运行;到了2005年7月这个比例上升到了69%。在2005年11月的时候达到接近70%的市占率,不过随着拥有大量域名数量的主机域名商转换为微软IIS平台,Apache市占率近年来呈现些微下滑。而Google自己的网页服务器平台GWS推出后,加上Lighttpd这 个轻量化网页服务器软件使用的网站慢慢增加,反应在整体网页服务器市占率上,根据netcraft在2007年7月的最新统计数据,Apache的市占率已经降为52.65%,8月时又滑落到50.92%。尽管如此,它仍旧是现阶段因特网市场上,市占率最高的网页服务器软件。
广泛的解释是(也是最显而易见的):这个名字来自这么一个事实:当Apache在1995年初开发的时候,它是由当时最流行的HTTP服务器NCSA HTTPd 1.3 的代码修改而成的,因此是“一个修补的(a patchy)”服务器。然而在服务器官方网站的FAQ中是这么解释的:“‘Apache’这个名字是为了纪念名为Apache(印地语)的美洲印第安人土著的一支,众所周知他们拥有高超的作战策略和无穷的耐性”。无论如何,Apache 2.x 分支不包含任何 NCSA 的代码。

Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。
它可以运行在几乎所有广泛使用的计算机平台上。
Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。
Apache的诞生极富有戏剧性。当NCSAWWW服务器项目停顿后,那些使用NCSAWWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。

相关模块
1.SSO Module - LemonLDAP

LemonLdap 是 Apache 的一个实现了 Web SSO 的模块,可处理超过 20 万的用户。
2.并发限制模块 - limitipconn
limitipconn 是一个 Apache 的模块,用来限制每个 IP 的并发连接数。支持 Apache 1.x 和 2.x。
3.日志监控模块
Apache Live Log 是一个 Perl 编写的模块,可以在浏览器上直接实时的通过 Ajax 技术浏览和监控 Apache 的 日志文件。
4.负载均衡模块
mod_backhand 是一个Apache 的负载平衡模块 。它定义了每个请求的HTTP重定向在一个异构的Apache服务器群集。每个请求的处理,并贯穿了一套“候选人的职能” ,以确定哪些服务器是最适合的回应。请求然后代理到该服务器。设施已到位,让你写您自己的动态加载决策算法。一切有关的要求和当前可用的资源可用于决策过 程。
5.图像处理模块
mod_gfx 是一个对图像进行即时处理的 Apache 模块,提供很多灵活的接口,包括:
Resizing
Resampling
Watermarking
Cropping
以后还将添加如下功能:
Add Text
Rotate
Draw Polygons
6. 压缩模块
mod-gzip-disk 是一个使用磁盘进行存储预压缩页面的 Apache 模块,与 mod-gzip 不同的是不需要每次请求的时候重新压缩。
使用方法:
gunzip -c mod_gzip_disk-0.5.tar.gz | tar -xvpf -
cd mod_gzip_disk
sudo make module
7. 音乐模块
mod_musicindex 是一个 Apache 用来处理音频文件的模块,类似 Perl 的 Apache::MP3,支持音频格式包括:MP3, Ogg Vorbis, FLAC, or MP4 / AAC ,可根据不同的音频属性进行排序列表、在线播放、下载、构建播放列表和搜索等,提供 RSS 和 Podcast 输出,支持多 CSS 和包下载。
8.LDAP 认证模块
LDAP 是轻量级目录访问协议,基于 X.500 标准,但更简单,并可根据需要进行定制。mod_psldap 是 Apache 用来执行 LDAP 认证和授权的模块。同时可通过 Web 界面进行简单的 LDAP 管理
9.带宽限制模块
mod_cband 是一个用来限制请求占用带宽的 Apache 模块。
10.CGI V8 引擎包
v8cgi 是一个很小的 C ++ 和 JS 和 C 文件集合,允许开发者在服务器端使用 JS 的模块,基本功能包括:IO, GD, MySQL, Sockets, templates, FastCGI and Apache module.
发展历史
Apache 起初由伊利诺伊大学香槟分校的国家超级电脑应用中心(NCSA)开发。此后,Apache 被开放源代码团体的成员不断的发展和加强。Apache 服务器拥有牢靠可信的美誉,已用在超过半数的因特网站中-特别是几乎所有最热门和访问量最大的网站。
Apache最开始是Netscape网页服务器之外的开放源代码选择。后来它开始在功能和速度超越其他的基于Unix的HTTP服务器。1996年4月以来,Apache一直是Internet上最流行的HTTP服务器: 1999年5月它在 57% 的网页服务器上运行;到了2005年7月这个比例上升到了69%。在2005年11月的时候达到接近70%的市占率,不过随着拥有大量域名数量的主机域名商转换为微软IIS平台,Apache市占率近年来呈现些微下滑。而Google自己的网页服务器平台GWS推出后,加上Lighttpd这 个轻量化网页服务器软件使用的网站慢慢增加,反应在整体网页服务器市占率上,根据netcraft在2007年7月的最新统计数据,Apache的市占率已经降为52.65%,8月时又滑落到50.92%。尽管如此,它仍旧是现阶段因特网市场上,市占率最高的网页服务器软件。
广泛的解释是(也是最显而易见的):这个名字来自这么一个事实:当Apache在1995年初开发的时候,它是由当时最流行的HTTP服务器NCSA HTTPd 1.3 的代码修改而成的,因此是“一个修补的(a patchy)”服务器。然而在服务器官方网站的FAQ中是这么解释的:“‘Apache’这个名字是为了纪念名为Apache(印地语)的美洲印第安人土著的一支,众所周知他们拥有高超的作战策略和无穷的耐性”。无论如何,Apache 2.x 分支不包含任何 NCSA 的代码
安装配置启用
Apache 的安装无外乎两种方式:源代码安装和二进制包安装。这两种安装类型各有特色,二进制包安装不需要编译,而源代码安装则需要先配置编译再安装,二进制包安装在一个固定的位置下,选择固定的模块,而源代码安装则可以让你选择安装路径,选择你想要的模块。本文主要介绍二进制DEB包安装方式(此方法只适用于Debian GNU/Linux 及其衍生版)。
系统:GNU/Linux Debian/etch
Apache当前版本: 2.4.2
1、安装:
使用以下命令安装:
tony@tonybox:~ s u d o a p t i t u d e u p d a t e a p t i t u d e i n s t a l l a p a c h e 2 a p a c h e 2 − u t i l s 其 中 a p a c h e 2 − u t i l s 提 供 了 我 们 在 配 置 维 护 过 程 中 非 常 有 用 的 一 些 工 具 安 装 完 成 后 , 可 以 使 用 下 面 的 命 令 启 动 A p a c h e 服 务 : t o n y @ t o n y b o x :   sudo aptitude update aptitude install apache2 apache2-utils 其中apache2-utils提供了我们在配置维护过程中非常有用的一些工具 安装完成后,可以使用下面的命令启动Apache 服务: tony@tonybox:~ sudoaptitudeupdateaptitudeinstallapache2apache2utilsapache2utils使Apachetony@tonybox:  sudo /etc/init.d/apache2 start
停止Apache服务则是:
tony@tonybox:~$ sudo /etc/init.d/apache2 stop
也可以直接用 kill 命令强制杀死apache2进程
tony@tonybox:~$ sudo killall apache2
如有需要, 可以通过rcconf来控制是否在系统启动时加载Apache 服务
启动完成后打开浏览器, 使用URL http://localhost/ 来访问已经启动的Apache服务器, 服务器将会跳转到 http://localhost/apache2-default/, 向浏览器返回一个Apache安装成功的页面。
注: 这取决于/etc/apache2/sites-available/default 配置文件中, 是否取消了
RedirectMatch ^/$ /apache2-default/
行的注释
2、 配置文件说明
在Debian下, 安装完成后, 软件包为我们提供的配置文件位于/etc/apache2目录下:
tony@tonybox:/etc/apache2$ ls -l
total 72
-rw-r–r-- 1 root root 12482 2006-01-16 18:15 apache2.conf
-rw-r–r-- 1 root root 748 2006-01-16 18:05 envvars
-rw-r–r-- 1 root root 268 2006-06-30 13:56 httpd.conf
-rw-r–r-- 1 root root 12441 2006-01-16 18:15 magic
-rw-r–r-- 1 root root 10 2006-06-30 13:56 ports.conf
-rw-r–r-- 1 root root 2266 2006-01-16 18:15 README
drwxr-xr-x 2 root root 4096 2006-01-16 18:15ssl
其中
apache2.conf
为apache2服务器的主配置文件, 查看此配置文件, 你会发现以下内容

Include module configuration:

Include /etc/apache2/mods-enabled/.load
Include /etc/apache2/mods-enabled/
.conf

Include all the user configurations:

Include /etc/apache2/httpd.conf

Include ports listing

Include /etc/apache2/ports.conf

Include generic snippets of statements

Include /etc/apache2/conf.d/[^.#]*
由此可见, apache2 根据配置功能的不同, 对配置文件进行了分割, 这样更利于管理
conf.d
下为配置文件的附加片断,默认情况下, 仅提供了 charset 片断,
tony@tonybox:/etc/apache2/conf.d$ cat charset
AddDefaultCharset UTF-8
如有需要我们可以将默认编码修改为 GB2312, 即文件的内容为: AddDefaultCharset GB2312
httpd.conf
是个空文件
magic
文件中包含的是有关mod_mime_magic模块的数据, 一般不需要修改它。
ports.conf
则为服务器监听IP和端口设置的配置文件,
tony@tonybox:/etc/apache2$ cat ports.conf
Listen 80
mods-available
目录下是一些。conf和。load 文件, 为系统中可以使用的加载各种模块的配置文件, 而mods-enabled目录下则是指向这些配置文件的符号连接, 从配置文件apache2.conf 中可以看出, 系统通过mods-enabled目录来加载模块, 也就是说, 系统仅通过在此目录下创建了符号连接的mods-available 目录下的配置文件来加载模块。同时系统还提供了两个命令 a2enmod 和 a2dismod用于维护这些符号连接。这两个命令由 apache2-common 包提供。命令各式也非常简单: a2enmod [module] 或 a2dismod [module]
sites-available
目录下为配置好的站点的配置文件, sites-enabled 目录下则是指向这些配置文件的符号连接, 系统通过这些符号连接来起用站点 sites-enabled目录下的符号连接附有一个数字前缀, 如000-default, 这个数字用于决定启动顺序, 数字越小, 启动优先级越高。 系统提供了两个命令 a2ensite 和 a2dissite 用于维护这些符号连接。这两个命令由 apache2-common 包提供。
/var/www
默认情况下将要发布的网页文件应该置于/var/www目录下,这一默认值可以同过主配置文件中的DocumentRoot 选项修改。
注意:如果你在是windows下应用Apache服务器,并且已经安装IIS,那么在安装Apache时请注意给Apache换个端口来监听比如8080,否则Apache占用的端口会和IIS冲突,造成Apache服务器不能正常启动。
3.启用SSL让apache更安全
apache加密TCP/IP网络产品的标准是SSL ,对于Internet上普遍使用的超文本传输协议(HTTP)而言,其加密后的协议称为 HTTPS,缺省采用443端口。HTTPS数据是加密以后传输的,因此能有效保护在网络上传输的个人隐私信息。
对apache配置支持SSL需要经过如下的操作:
第一步:下载所需的软件并解开到 /usr/local/src 目录
Apache 1.3.24
Mod_ssl 2.8.8-1.3.24
Openssl-0.9.6c
每个 mod_ssl 的版本和特定的 Apache 版本有关,因此要下载相对应的 mod_ssl 版本。
第二步:编译和安装
安装 OpenSSL 到 /usr/local/ssl: # pwd
/usr/local/src/openssl-0.9.6c

./config

make

make test

make install

安装 mod_ssl,编译进 Apache 的源码树: # pwd
/usr/local/src/mod_ssl-2.8.8-1.3.24

./configure --with-apache=/usr/local/src/apache_1.3.24 \

–with-ssl=/usr/local/ssl
以 DSO 方式编译 Apache: # pwd
/usr/local/src/apache_1.3.24

./configure --prefix=/usr/local/apache --enable-rule=SHARED_CORE \

–enable-module=ssl --enable-shared=ssl

make

创建 SSL 证书,证书需要从商业的认证权威机构或者从内部的 CA 得到。
执行下面的步骤生成证书: # pwd
/usr/local/src/apache_1.3.24

make certificate TYPE=custom

生成证书时会提示两遍下面的信息:<> 内为示范数据。
第一遍: Country Name (2-letters)
State or Province Name
Locality Name
Organization Name
Organizational Unit Name
Common Name
Email Address
Certificate Validity <365>
第一遍会产生一个用于测试的 CA。“Common Name” 可以为任意文本。第二遍 Country Name (2-letters)
State or Province Name
Locality Name
Organization Name
Organizational Unit Name
Common Name
Email Address
Certificate Validity <365>
第二遍产生的是实际可用的证书,能被商业机构或者内部 CA 认证, “Common Name” 为 Web 服务器的主机名。
安装并运行 Apache # pwd
/usr/local/src/apache_1.3.24

make install

启动 Apache ,并测试 # pwd
/usr/local/apache/bin

./apachectl stop

./apachectl startssl

在浏览器上检查你的站点正常与否即可,至此即可让apache支持安全的SSL。
在Apache 1.4以后的版本,我们还可以用以下命令完成服务的完美重启:
#./apachectl graceful
特点
apache日志为什么不记录百度蜘蛛?这个问题相信很多初学者都基本碰到了,apache日志默认是不记录百度蜘蛛、谷歌和各大搜索引擎的蜘蛛程序的,但只需要修改一个地方就可以解决这个问题
1、打开httpd.conf文件找到以下部分:
LogFormat “%h %l %u %t “%r” %>s %b “%{Referer}i” “%{User-Agent}i”” combinedLogFormat “%h %l %u %t “%r” %>s %b” commonLogFormat “%{Referer}i -> %U” referer
LogFormat “%{User-agent}i” agent
具体有关LogFormat的用法请参照:
2、接着继续向下移动,找到虚拟主机配置段,也就是VirtualHost段,这个是由自己来配置的。本站的虚拟主机的日志文件是这样设置的:
CustomLog /var/html/faq/logs/linux520-access.log combined如果你想记录访问全称,就按如上部分设置,如果不想记录头部分,则如下设置:CustomLog /var/html/faq/logs/linux520-access.log common

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值