`
hanqunfeng
  • 浏览: 1549003 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux中apache配置

阅读更多

一、 背景

1.什么是Apache

Apache,是一种开放源码的HTTP服务器,可以在大多数操作系统中运行,由于其多平台和安全性所以被广泛使用,是目前最流行的Web服务器软件之一。Apache 起初由 Illinois 大学 Urbana-Champaign 的国家高级计算程序中心开发,开始Apache只是作为Netscape网页服务器之外的选择。渐渐的,它开始在功能和速度上超越其它基于UnixHTTP服务器。从19964月以来,Apache一直是Internet上最流行的HTTP服务器: 19995月它在 57% 的网页服务器上运行;而到了20057月这个比例上升到了69%Apache名称的由来是为了纪念美洲印第安人土著中的一支,因为这支土著拥有最高超的作战策略和无穷的耐性。

2.什么是 Apache HTTP Server

Apache HTTP Server(也被称为Apache httpd)Apache软件基金会创建的一个健壮的、工业级的、功能强大的、开放源代码的HTTP(Web)服务器。

二、 httpd.conf中常用参数介绍

1.连接类参数

lTimeOut

服务器在断定请求失败前等待的时间,接收和发送数据的超时时间。

【说明】

TimeOut参数用于设置Apache在等待以下三种事件的时间:

u 接受一个GET请求耗费的总时间。

u POSTPUT请求时,接受两个TCP包之间的时间。

u 回应时TCP包传输中两个ACK包之间的时间。

还可以理解成Apache允许每次通过HTTP协议传输数据的最大时间。

lKeppAlive

启用HTTP持续作用。

【说明】

持续作用扩展自HTTP/1.0HTTP/1.1的长连接特性。提供了长效的HTTP会话,用以在同一个TCP连接中进行多次请求。在某些情况下,这样的方式会对包含大量图片的HTML文件起到50%的加速作用。对于使用HTTP/1.0的客户端来说,只有客户端设置使用的时候才会使用持续作用连接。而对于HTTP/1.1的客户端来说,如果没有进行特殊指定,长连接将是默认的连接方式。

lMaxKeppAliveRequests

一个长连接中允许的请求数量。

【说明】

该参数限制了当启用KeepAlive时,每次连接允许的请求数量。如果将此值设为0,将不限制请求的数量。这里建议最好将此值设为一个比较大的值,以确保最优的服务器性能。

lKeppAliveTimeOut

持续作用中服务器在两次请求之间的等待时间。

【说明】

Apache在关闭本次连接前等待下一次请求的时间,即在这段时间内该连接没有接收到请求就会关闭此连接。一旦收到一个请求,超时值将会被设置为KeppAliveTimeOut的值。

注意:对于高负荷的服务器来说,如果把该参数的值设置的较大可能会导致一些性能方面的问题,因为KeppAliveTimeOut的值会影响释放空闲进程、线程时间的数量,如果该值大,那么在一定时间区间内释放出来的空闲进程、线程的数量会少于该值小的,所以会降低服务器处理请求的能力,从而影响整个系统的吞吐量。

lListen

服务器监听IP地址和端口。

【说明】

Listen参数是指Apache服务器在指定的IP地址和端口上进行监听;默认情况下Apache会在所有IP地址上监听。Listen是一个必须设置的指令。如果在配置文件中找不到这个指令,服务器将无法启动。

Listen参数还可以指定服务器在哪个端口或地址和端口的组合上进行监听请求。如果只指定一个端口,服务器将在所有地址上监听该端口。如果指定了地址和端口的组合,服务器将按照指定地址和指定的端口进行监听。

使用多个Listen参数可以指定多个不同的监听端口和/或地址端口组合。

例如,想要服务器接受808080端口上的请求,可以这样设置:

Listen 80
Listen 8080

为了让服务器在两个确定的地址端口组合上接受请求,可以这样设置:

Listen 192.64.182.1:80
Listen 192.64.182.5:8080

注意:多个Listen指令指定了同一个地址和端口的组合后,会导致"Address already in use"错误。

2.系统路径管理类参数

lServerRoot

服务器的安装基础目录。

【说明】

该参数设置了服务器所在的目录。一般来说它将包含conf/logs/子目录。其它配置文件的相对路径都基于此目录 (比如IncludeLoadModule)

例如:

ServerRoot /etc/httpd

lDocumentRoot

组成网络上可见的主文档树的根目录。

【说明】

此参数设置了httpd服务的目录。在没有配置类似Alias这种参数的情况下,服务器会将请求中的URL附加到DocumentRoot后面以构成指向文档的路径。比如说:

DocumentRoot /etc/httpd/www/web

于是对http://www.ccb.com.cn/index.html的访问就会指向/etc/httpd/www/web/index.html。如果参数中不是绝对路径,则被假定为是相对于ServerRoot的路径。

注意:指定DocumentRoot时不应包括最后的"/"

lDirectory

可以封装一组参数,使之仅对文件空间中的某个目录及其子目录生效

【语法】

<Directory directory-path> ... </Directory>

【说明】

<Directory></Directory>用于封装一组参数,使其对某个目录及其子目录生效。directory-path可以是一个目录的完整路径,或是包含了Unix shell匹配语法的通配符字符串,但是通配符都不能匹配"/"字符,例如:<Directory /*/public_html>是无法匹配/home/user/public_html 的,而<Directory /home/*/public_html>却能够正确匹配。

directory-path参数必须与被访问文件所在文件系统的路径保持一致。如果有多个非正则表达式,<Directory>配置段符合并包含某文档的目录(或其父目录),那么会以短目录优先的规则进行应用。<Directory />的默认访问权限为"Allow from All",这意味着Apache没有进行访问控制,通过设置OrderDenyAllowAllowOverride这个几个参数可以对访问进行控制。

下面简单介绍一下这4个参数的用法。

1> Allow

该参数是控制哪些主机才可以访问目标。

示例:

Allow from 192.64.182.53
Allow from 192.64.182.1 192.64.182.3

表示IP地址为192.64.182.1192.64.182.3192.64.182.53才可以访问目标。

2> Deny

该参数是控制哪些主机被禁止访问目标。

示例:

Deny from 192.64.182.53
Deny from 192.64.182.1 192.64.182.3

表示IP地址为192.64.182.1192.64.182.3192.64.182.53则不能访问目标。

3>Order

Order参数是控制AllowDeny参数生效顺序的,常用的取值是:Deny,Allow Allow,Deny。例如:

Order Deny,Allow

Deny from 192.64.182.53

Allow from 192.64.182.1 192.64.182.3

表示先考虑Deny条件再考虑Allow条件,该配置的意思是拒绝IP地址为192.64.182.53的访问,只允许192.64.182.1 192.64.182.3的访问。

再看一个例子:

Order Allow,Deny

Allow from all

Deny from 192.64.182.53

表示只拒绝IP地址为192.64.182.53的访问。

4>AllowOverride

当服务器发现一个.htaccess文件(AccessFileName指定)时,它需要知道在这个文件中声明的哪些指令能覆盖在此之前指定的配置参数。一般情况下NONE即可。

Directory参数小结】

最后给出一个完整封装目录的配置段:

<Directory "/home/hrdc/images">

Options Indexes FollowSymLinks //URL映射到的系统目录产生文件列表

AllowOverride None

Order Deny,Allow
Allow from all

</Directory>

上面的配置对系统中的"/home/hrdc/images"目录进行了封装,而且对访问不加任何限制。这段配置后面在讲如何将静态文件放置到Apache上还会用到。

3.监控反馈类参数

lPidFile

服务器用于记录父进程(监控进程)PID的文件

【说明】

PidFile指令设置服务器用于记录

父进程(监控进程)PID的文件。如果指定的不是绝对路径,那么将视为基于ServerRoot的相对路径。

示例:

PidFile /var/run/apache.pid

这个文件通常用来给服务器父进程发送一个信号,用于关闭或重启服务器,以便重新打开ErrorLogTransferLog文件、重新读取配置文件。

lServerAdmin

服务器返回给客户端的错误信息中所包含的管理员邮件地址。

【说明】

该参数是在所有返回给客户端的错误信息中给出管理员的邮件地址。但也可以是一个URL地址,如果httpd不能将该参数的值识别为URL,它就会假定它是一个email-address ,并在超连接中用在mailto后面。这里推荐配置一个Email地址,如果配置的是URL一定要保证指向一个受控制的服务器,否则用户将无法确保和管理员取得联系。

示例:

ServerAdmin hradmin.zh@ccb.cn

4.日志管理类参数:

lLogLevel

控制错误日志的级别

【说明】

LogLevel用于设置服务器按照日志级别来记录日志信息。该参数可以选择的level有:

Level

描述

例子

emerg

紧急(系统无法使用)

"Child cannot open lock file. Exiting"

alert

必须立即采取措施

"getpwuid: couldn't determine user name from uid"

crit

致命情况

"socket: Failed to get a socket, exiting child"

error

错误情况

"Premature end of script headers"

warn

警告情况

"child process 1234 did not exit, sending another SIGHUP"

notice

一般重要情况

"httpd: caught SIGBUS, attempting to dump core in ..."

info

普通信息

"Server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers)..."

debug

调试信息

"Opening config file ..."

注意:当指定了某个级别后,所有级别高于它的信息也会被同时记录。建议至少使用crit级别。当错误日志是一个单独分开的正式文件的时候,notice级别的消息总是会被记录下来,而不能被屏蔽。

lErrorLog

存放错误日志的位置

【说明】

该参数指定了当服务器遇到错误时记录日志的文件名。如果该值不是一个以斜杠(/)开头的绝对路径,那么将被认为是一个相对于ServerRoot的相对路径。

示例

ErrorLog /etc/var/log/httpd/error_log

如果配置了一个以管道符号(|)开头的值,那么会为它指定一个命令来处理错误日志。

示例

ErrorLog "|/usr/local/bin/httpd_errors"

注意:当在非Unix平台上输入文件路径的时候,路径分隔符必须统一使用正斜线(/)

lCustomLog

设置服务器访问日志的文件名和格式。

【说明】

该参数用来对服务器的请求进行日志记录。第一个参数指定了日志文件的位置,第二个参数用于设置日志的格式。

示例:

CustomLog logs/access_log "%h %l %u %t ""%r"" %>s %b"

l定制日志文件格式

LogFormatCustomLog的格式化参数是一个字符串。这个字符串会在每次请求发生的时候,被记录到日志中去。它可以包含将被原样写入日志文本放入字符串以及C风格的控制字符""n"""t"。文本中的引号和反斜杠应通过"""来转义。请求本身的情况也将通过在格式字符串中放置各种"%"转义符的方法来记录,它们在写入日志文件时,根据下表的定义进行转换:

格式字符串

描述

%%

百分号(Apache2.0.44或更高的版本)

%a

远端IP地址

%A

本机IP地址

%B

HTTP头以外传送的字节数

%b

CLF格式显示的除HTTP头以外传送的字节数,也就是当没有字节传送时显示'-'而不是0

%{Foobar}C

在请求中传送给服务端的cookieFoobar的内容。

%D

服务器处理本请求所用时间,以微为单位。

%{FOOBAR}e

环境变量FOOBAR的值

%f

文件名

%h

远端主机

%H

请求使用的协议

%{Foobar}i

发送到服务器的请求头Foobar:的内容。

%l

远端登录名(identd而来,如果支持的话),除非IdentityCheck设为"On",否则将得到一个"-"

%m

请求的方法

%{Foobar}n

来自另一个模块的注解Foobar的内容。

%{Foobar}o

应答头Foobar:的内容。

%p

服务器服务于该请求的标准端口。

%P

为本请求提供服务的子进程的PID

%{format}P

服务于该请求的PIDTID(线程ID)format的取值范围为:pidtid(2.0.46及以后版本)以及hextid(需要APR1.2.0及以上版本)

%q

查询字符串(若存在则由一个"?"引导,否则返回空串)

%r

请求的第一行

%s

状态。对于内部重定向的请求,这个状态指的是原始请求的状态,---%>s则指的是最后请求的状态。

%t

时间,用普通日志时间格式(标准英语格式)

%{format}t

时间,用strftime(3)指定的格式表示的时间。(默认情况下按本地化格式)

%T

处理完请求所花时间,以秒为单位。

%u

远程用户名(根据验证信息而来;如果返回status(%s)401,可能是假的)

%U

请求的URL路径,不包含查询字符串。

%v

对该请求提供服务的标准ServerName

%V

根据UseCanonicalName指令设定的服务器名称。

%X

请求完成时的连接状态:

<td style="border-right: black 1.5pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom:

X=

连接在应答完成前中断。

+=

分享到:
评论

相关推荐

    Linux下Apache+PHP+Mysql安装与配置

    Linux 下 Apache+PHP+Mysql 安装与配置 ...总结,文章介绍了 Linux 下 Apache+PHP+Mysql 的安装和配置过程,包括 Apache 的安装和配置、MySQL 的安装和配置,并且对安装过程中的注意事项进行了说明。

    Linux下Apache配置详解

    Linux下Apache配置详解 学习必备

    linux中apache安装与配置

    本文将详细介绍如何在Linux环境中安装和配置Apache,包括所需的依赖包和基本步骤。 首先,让我们从安装Apache开始。在大多数Linux发行版中,你可以通过包管理器来安装Apache。例如,在Ubuntu或Debian上,使用`apt`...

    apache for linux安装

    2. **添加软件源**:在某些Linux发行版中,Apache可能不在默认的软件仓库中。如果需要,可以添加额外的软件源,例如EPEL(Extra Packages for Enterprise Linux)仓库。 3. **安装Apache**:使用包管理器进行安装。...

    Linux apache环境多域名配置

    ### Linux Apache环境多域名配置详解 #### 一、前言 在互联网开发中,单一服务器部署多个项目并分别对应不同的域名是一种常见的需求。这不仅能够提高服务器资源的利用率,还能帮助开发者更好地组织和管理不同类型...

    Apache在Linux中的配置方法

    详细,简单操作安装与配置LAMP环境 - myjavawork - 博客园

    linux下apache虚拟主机的配置方法

    在Linux环境下配置Apache虚拟主机是一项关键的服务器管理技能,它允许在同一台物理服务器上运行多个独立的网站,每个网站都拥有自己的域名、文档根目录、错误日志等配置。以下是对给定文件信息中提到的知识点进行的...

    Linux中Apache的配置详解

    ### Linux中Apache的配置详解 #### 一、Apache概述与特点 Apache是一款广泛使用的Web服务器软件,它在Linux操作系统上非常流行。Apache以其强大的功能、稳定性以及灵活性而著称,适用于多种平台,并支持HTTP 1.1...

    Linux下Apache服务器的配置及安全问题

    Linux下Apache服务器的配置及安全问题 Linux 作为一个开放源代码的操作系统,广泛应用于服务器领域,而 Apache 服务器则是最流行的 Web 服务器之一。在 Linux 平台上配置 Apache 服务器是许多开发者和管理员的必修...

    linux+apache+tomcat整合完整详解版(最新)

    Linux+Apache+Tomcat 的整合是目前最常用的 web 服务器架构之一,本文档将详细介绍如何在 Red Hat Enterprise Linux 5.2 环境下安装和配置 Apache2.2.12、Tomcat6.0.20 和 JDK6u16,以实现一个完整的 JSP 环境。...

    linux_Apache服务器配置与管理

    linux系统下Apache服务器的配置与管理教程

    Linux下Apache安装

    在Linux环境中安装Apache服务器是一项基础且关键的任务,尤其对于搭建Web服务、测试环境或运行各种基于Web的应用程序至关重要。本文将深入解析Linux环境下Apache的安装流程,涵盖解压缩、配置、编译、安装及启动验证...

    基于Linux的Apache服务器的安装与配置

    基于Linux的Apache服务器的安装与配置 基于Linux的Apache服务器的安装与配置是指在Linux操作系统上安装和配置Apache服务器,以提供Web服务。Apache服务器是最流行的Web服务器之一,广泛应用于网站、应用程序和...

    Linux下Apache_PHP_Mysql环境配置

    在Linux环境中,构建LAMP(Linux、Apache、MySQL、PHP)架构是常见的Web服务器配置,用于搭建动态网站和应用程序。本教程将详细讲解如何在Linux系统下编译安装Apache 2.4.4、MySQL 5.5.28以及PHP 5.4.13。 首先,...

    suse_linux配置apache

    suse_linux配置apache文档

    linux系统 apache http 免安装包

    这个列表表明压缩包内除了各个组件的源代码或二进制文件外,还包含了一份名为“复制httpd服务.docx”的文档,可能详细介绍了如何在Linux系统中使用这些组件来搭建和配置Apache HTTP Server。用户可以通过遵循这份...

    linux-Apache配置

    linux-Apache配置内容: 7.1 WWW 服务器简介 7.2 Red Hat Linux 9 的默认配置 7.3 配置Apache 7.4 访问控制、认证和授权 7.5 组织和管理站点内容 7.6 Apache 的日志管理和统计分析 linux-Apache配置学习目标: 熟悉...

    linux 配置apache+tomcat

    本文将详细介绍如何在Linux系统中安装并配置JDK、Tomcat以及Apache,实现一个基本的Web服务环境。 #### 一、安装JDK 在配置Apache与Tomcat之前,首先需要确保JDK(Java Development Kit)已经正确安装在服务器上,...

    Linux+Apache+Mysql+PHP典型安装配置

    ### Linux+Apache+Mysql+PHP典型安装配置详解 在构建Web服务器时,"Linux+Apache+Mysql+PHP"组合被广泛认为是最经典、最稳定的解决方案之一,尤其适用于搭建高性能、高可用性的动态网站环境。本文将详细介绍这一...

    linux安装Apache,apache安装包,内含相关安装包

    本文将详细介绍如何在Linux环境下安装Apache,以及如何处理提供的压缩包中的相关安装文件。 首先,我们需要了解Linux的基础知识,尤其是关于命令行操作。大多数Linux发行版都提供了基于终端的安装方式,这需要用户...

Global site tag (gtag.js) - Google Analytics