【ACCESS精品源码栏目提醒】:网学会员为广大网友收集整理了,【精品】Apache(Linux)服务器配置 - 其它资料,希望对大家有所帮助!
Apache 服务器探秘 .............................................................................................................................. 11.1 Apache 服务器 ............................................................................................................................... 2 1.1.1 简介 ..................................................................................................................................... 2 1.1.2 Apache 服务器安装(linux/unix).............................................................................. 21.2 Apache 服务器的配置 ................................................................................................................... 4 1.2.1. httpd.conf ...................................................................................................................... 5 1.2.2.
access.conf .................................................................................................................... 7 1.2.3. srm.conf .......................................................................................................................... 71.3 Apache 服务器功能介绍 ............................................................................................................... 9 1.3.1 服务器控制 ........................................................................................................................ 9 1.启动服务器 ...................................................................................................................... 10 2.停止服务器 ...................................................................................................................... 10 3.重启动服务器 .................................................................................................................. 10 4.获得服务器的状态 .......................................................................................................... 10 5.查看服务器配置文件 ..................................................................................................... 11 6.测试 Apache Server....................................................................................................... 11 1.3.2 访问控制 ........................................................................................................................... 11 1.Options ............................................................................................................................ 11 2.AllowOverride ................................................................................................................ 12 3.ltLimitgt ............................................................................................................................ 13 1.3.3 根据客户主机名或 IP 地址限制访问........................................................................... 13 1.Allow................................................................................................................................. 13 2.Deny................................................................................................................................... 14 3.Order................................................................................................................................. 14 1.3.4 使用用户认证来限制某些文档的访问 ........................................................................ 14 1.3.5 用户 web 目录 .................................................................................................................. 16 1.3.6 虚拟主机 .......................................................................................................................... 171.4 Apache 服务器的其他服务 ......................................................................................................... 20 1.4.1 CGI 脚本php、perl ................................................................................................... 20 1.CGI 配置 ......................................................................................................................... 20 2.CGI 程序的调试 ............................................................................................................. 21 1.4.2 Apache 的 proxy 服务..................................................................................................... 21 代理模块的编译 .................................................................................................................. 21 代理模块的指令集 .............................................................................................................. 22 代理服务器的配置 .............................................................................................................. 241.5 Apache 常见故障排除 ................................................................................................................. 25 Apache 服务器探秘 杜广达内容提要 本文介绍了 Linux 的 Web 服务器——Apache 服务器。
在互联网飞速发展的今天,Web功能的使用与开发已经成为操作系统不可缺少的配套部分。
Apache 是常见的支持 HTTP 协议的 Web 服务器之一,也是使用最广泛的 Web 服务器。
本文将帮助你在自己的 Linux 系统中配置自己 Web 服务器。
本文主要介绍了以下内容: Apache 服务器安装 Apache 服务器配置文件 Apache 服务器功能介绍 Apache 服务器的 CGI 和 proxy 服务 Apache 服务器的常见故障排除关键字: Apache,Web 服务器,Linux1.1 Apache 服务器1.1.1 简介 Apache 是常见的支持 HTTP 协议的 Web 服务器之一,也是使用最广泛的 Web 服务器。
截止到 1999 年 1 月,世界上大约有超过 300 万台 Internet 服务器使用的是 Apache Server。
Apache Server 的主要特点是稳定性高、速度快、功能多。
通过第三方的评测,ApacheServer 比大多数的 Web 服务器都快。
Apache 服务器既是一种软件,又是一个工程。
它是由千千万万的服务器代码和文档开 在发者共同努力的结果。
1995 年 4 月,公开发行了第一套 Apache Server,版本号是 0.6.2。
Apache Server 的名字来源于“A PatCHy Server”。
现在最新的版本是 1.3.12。
前不久,我国将 Linux 操作系统正式确定为重点发展方向。
Apache Server 以其对 UNIX 和Linux 的最好支持,使它必定成为我国今后 Web 服务器的主流。
1.1.2 Apache 服务器安装(linux/unix) 通常来说,大家在安装 linux 时可以选择安装 WEB SERVER ,并在 INTERNET SERVICES中开启 httpd 这一项服务,这样系统就会自动的安装好 apache,并且在系统第一次启动时启动 httpd 进程。
在作好一些相应的配置后,在你的 Xwindows 环境下打开 NETSCAPE 或 IE,并在 URL 中填入 localhost 或本机的 IP 地址,就会访问到 apache 的默认的页面。
如果说你没有安装 WEB SERVER ,你可以重新安装 Linux 并选择 UPDATE,挑选 apache的软件包安装到本机。
当然,如果你想要安装最新的版本, 可以到 http://www.apache.org/网站上去下载最新的版本。
我们假设你已经将源代码拷贝到一个目录下。
这时可以人工配置或使用 APACI 的自动配置界面。
这里我们详细介绍后者。
1 在源代码的根目录 中,你会找到一个叫做 configure 的脚本,该脚本是使用 APACI 配置 Apache 所必须的。
你可以通过在该脚本后加“--help”来取得帮助: ./configure --help1 在下面的介绍的命令中,所有针对“./configure”的命令,都是默认在源代码的根目录中执行的。
在 配 置 时 所 做 的 第 一 步 是 决 定 其 安 装 位 置 。
Apache 默 认 的 安 装 路 径 是/usrlocal/apache。
但你也可以自行指定安装位置。
例如,你可以运行下面的命令来将Apache 安装在一个叫做 /usr/apache 的目录下: ./configure --prefix/usr/apache 该脚本会将所有的 Apache 文件安装在指定的目录下。
你也可以使用 --prefix 选项将指定类型的文件定位到其他目录。
具体 prefix 选项请参看表 1-1: 选项名 功 能 BinddirDIR 把可执行文件安装在指定 DIR 目录下 Compat 按照 Apache1.2 安装路径安装 DatadirDIR 把只读数据文件安装在指定 DIR 目录下 Exec-prefixDIR 把依赖于结构的文件安装在指定 DIR 目录下 IncludedirDIR 把包含文件安装在指定 DIR 目录下 LibexecdirDIR 把可执行程序安装在指定 DIR 目录下 Layout 列出详细的安装路径的目录结构 LocalstatedirDIR 把可修改数据文件安装在指定 DIR 目录下 LogfiledirDIR 把日志文件安装在指定 DIR 目录下 MandirDIR 把人工页面安装在指定 DIR 目录下 ProxycachedirDIR 把代理缓存数据安装在指定 DIR 目录下 RuntimedirDIR 把运行时数据文件安装在指定 DIR 目录下 SbindirDIR 把系统管理员可执行文件安装在指定 DIR 目录下 SysconfdirDIR 把配置文件安装在指定 DIR 目录下 表 1-1 configure 脚本 prefix 选项列表 接下来是决定是否使用 Apache 开发人员提供的标准模板配置。
如果你第一次编译Apache,那么推荐使用标准配置来熟悉整个过程。
基于 APACI 配置的标准(或缺省)的配置文件是存储在 src 子目录下的 Configuration.apaci。
该文件中,有 5 种行类型:注释行: 以“”符号作为起始字符的行,用于描述信息和屏蔽那些不希望设置的选项。
例如: Rule SHARED_COREdefaultMakefile 选项行: 指类似于“CCgcc”的行。
用于指定生成的 Makefile 文件中的选项。
例如: EXTRA_CFLAGS’SRCDIR/apaci’规则行: 以“Rule”开头的行。
用于控制 Configure 怎样创建 Makefile 文件。
例如: Rule SOCKS4no模块选择行: 以“AddModule”开头的行。
用于增加模块。
例如: AddModule modules /standard/mod_cgi.o可选模块选择行: 以“Module”开头的行。
把某些模块编译到 Apache 里但不激活。
如果你需要修改 Configuration.apaci 文件的内容,你不必要直接修改该文件。
本文建议通过使用配置脚本来完成。
例如,通过以下脚本来使能、使非规则: ./configure --prefix/usr/apache --enable-ruleSOCKS4 ./configure --prefix/usr/apache --disable-ruleSOCKS4 同理可以使用 -enable-module -disable-module 来使能、使非模块: ./configure --prefix/usr/apache --enable-modulecgi ./configure --prefix/usr/apache --disable-modulecgi 在成功的运行上面介绍的脚本后, 你已经可以编译并安装 Apache 了 。
从 Apache 源代码目录的根目录下执行 make 命令来编译 Apache 源程序。
如果成功将产生 WWW 服务器的可执行二进制文件 httpd。
在没有任何错误信息的情况下,你可以运行 make install 命令来安装Apache。
否则,请查看错误信息并重新按配置步骤运行一遍。
只要你已经编译并安装了 Apache,你就可以运行 make clean 来删除任何在编译时创建的对象文件。
1.2 Apache 服务器的配置 每个 Apache 发布的源代码中都包括下面的缺省配置文件:
access.conf httpd.conf srm.conf magic mime.types 后两个文件在大多数情况下应给予保留。
magic 文件是用在一个叫做 mod_mime_magic的特定模块中的,mime.types 文件是控制对于一个给定的文件扩展名来说将何种类型的MIME 发送给用户。
我们需要定制的文件是 httpd.conf、
access.conf、srm.conf。
它们有相同的结构,你可以将所有的指令放在 httpd.conf 文件里而将另外两个文件置空。
在最新版本中,仅保留了 httpd.conf 文件。
不论是只需要修改一个配置文件还是三个配置文件都要修改,其具体步骤内容都是完全一致的。
本文仍介绍具有三个配置文件的 Apache 版本。
在正式开始之前,我们先来介绍以下 Apache 配置文件的格式。
这些配置文件有两种类型的信息:可选注释和服务器指令。
第一个字符为“”符号的是注释行,它们对服务器软件不起作用,服务器在对这些文件进行语法分析时会忽略掉所有的注释行;除了注释和空行外,服务器把其他的行认为是完整的或部分的指令。
指令又分成与 shell 命令类似的命令和伪 HTML 标记。
例如: Directive argument argument 与 shell 命令类似的命令 ltVirtualhost www.mydomain.comgt 伪 HTML 标记 Port 80 与 shell 命令类似的命令 lt/Virtualhostgt 伪 HTML 标记 与 HTML 不同,伪 HTML 标记必须各占一行。
我们可以把命令组成一组放在某个伪 HTML标记中,象上面那样。
下面针对每个配置文件介绍各指令的含义。
1.2.1. httpd.conf 清单 1-1 给出了本节要介绍的命令在 httpd.conf 文件中的缺省用法。
清单 1-1 httpd.conf 命令举例 ServerType standalone Port 80 User nobody Group nobody ServerName 202.204.3.16 ServerAdmin cuckoodoovenus.bupt.edu.cn ServerRoot quot/wwwquot ErrorLog /www/logs/error_log Timeout 300 PidFile /www/logs/httpd.pid KeepAlive On KeepAliveTimeout 15 MaxClients 150 MaxKeepAliveRequests 100 MinSpareServers 5 StartServers 5ServerType 此指令指定 Web 服务器以何种方式工作。
有两个值可供选择 standalone 和 inetd 。
Standalone 表示你的 httpd 进程是以一个单独的守护进程(daemon)的方式在后台侦听是否有客户端的请求,启动 httpd 的命令将加进系统启动脚本文件/etc/rc.d/rcX.d 中;Inetd表示你的 httpd 进程不是以守护进程(daemon)的方式运行,而是由 Inetd 这个 internetservices 的进程侦听,一旦有客户的请求,它会自动的启动 httpd 这个进程来提供相应的服务。
对这种方式,启动 httpd 的命令将加进/etc/inetd.conf 文件中。
因为在 standalone 方式下,为每个请求装载一个新进程的负载几乎不存在,所以此种方式更高效。
因此,此指令默认的是 Standalone 方式,对于一个比较繁忙的网站,本文建议您选择 Standalone 方式启动 httpd。
Port 你分配给你的 WEB SERVER 的端口号。
此指令仅对 Standalone 方式启动的服务器有意义。
Httpd 的默认端口是 80,也可以分配给自己的 WEB SERVER 一个大于 1024 的端口号。
如果你这样做,你必须在你的 URL 后面跟上你的端口号才能访问到你的页面。
比如你分配给你的服务的端口号是 8888,那么你访问时需要输入 http://domainname:8888User 和 Group 象 Port 指令一样,这两条指令仅对 standalone 服务器有意义。
。
这两条指令分别指定 httpd 提供服务的子进程的用户标识(UID)和组标识(GID)当 主主 Web 服务器进程调用一个子服务器来完成一个请求时, Web 服务器进程根据这些指令的设置的值修改子进程的 UID 和 GID。
为了安全原因,本文推荐你以属于一个具有非常低权限的组的、 具有非常低权限的用户方式运行子服务器进程。
在大多数 UNIX 系统中,用户名 nobody 以及 nogroup 组具有最低权限。
ServerName 你机子的名称,如果你有域名,填入你本机的域名。
如果没有,就填入你的主机名或IP 地址。
ServerAdmin 服务管理员的 email 地址,默认的是本机的 root 用户,所以是 rootlocalhost。
当服务器产生一个错误时,该 email 地址会显示出来。
ServerRoot 用来存放服务的配置、出错和记录文件的最底层的目录。
如果你使用 APACI 接口编译和安装 Apache,那么缺省 ServerRoot 为你在配置脚本中提供的 prefix 值;否则,你需要修改缺省值为一个合适的目录。
ErrorLog 用来存放你 WEB SERVER 的出错信息的文件。
如果你将该指令设置为一个相对路径(即 ,那么这个路径就被认为是相对于 ServerRoot 目录的。
路径不是以“/”开头) 不管你将日志放在什么地方,你应该确信只有主服务器进程对该目录有写的权限。
允许其他用户对该日志目录有写的权限意味着某些人会未经许可就获得了你的主 Web 服务器进程的 UID,一般这个 UID 就是 root 帐户。
Timeout 设置服务器等待的最大时间值,服务器等待下列事件:接受 GET 请求;接收 TCP/IP 包文确认;接收 POST 或 PUT 请求。
注意:下面介绍的指令仅用于 standalone 服务器。
PidFile 该指令指定的文件存放了 httpd 进程的进程号。
KeepAlive 有两个可选值:on 或 off。
该指令指定是否支持永久性连接。
使用永久性连接允许多个请求在同一个 TCP 连接上发送,在某些情况下,如果一个 HTML 文档有大量的图象,则可以降低大约 50的通信延迟。
KeepAliveTimeout 规定了服务器在断开与客户机的连接之前等待下一个请求的最大时间。
默认值是 15 秒。
MaxClients 本指令指定允许的最大客户个数。
默认值是 150 个。
最大的可能值是 256 个。
如果你想处 理 多 于 256 个 同 时 连 接 , 则 需 要 修 改 src/include/httpd.h 的 标 题 头 文 件 并 将HARD_SERVER_LIMIT 常量设置为你所希望的限制值。
在对新服务器重新编译之后,你就可以将此指令设置为所期望的限制值。
MaxKeepAliveRequests 规定了每个 KeepAlive 连接所服务的最大请求数。
StartServers 设置了 Apache 在一开始所启动的子服务器进程的初始数目。
通常上面的参数的默认值是不用改的, 但是如果你同时在一台机子上开几个 WEB SERVER时要注意:第一,你要给每一个 WEB SERVER 分配不同的 port 号;第二,要分别指定他们的 errorlog 文件和 pidfile 文件;第三,不懂的参数不要随意改动,即使改动也要一次改一个,并留有记录以便恢复。
1.2.2.
access.conf 清单 1-2 给出了本节要介绍的命令在
access.conf 文件中的缺省用法。
清单 1-2
access.conf 命令举例 ltDirectory /homegt Options Indexes IncludesNOEXEC AllowOverride None lt/Directorygt ltDire.