### 第一部分:全局环境
#
# 它将影响Apache的整体动作
#
#
# 这个指令控制了服务器回应给客户端的"Server:"应答头是否包含关于服务器操作系统类型和编译进的模块描述信息
- # 一般可用模式有以下几种默认的是 Full方式返回给客户端的头信息
- # example:
- # ServerTokens Prod[uctOnly]
- # Server:Apache
- # ServerTokens Major
- # Server:Apache/2
- # ServerTokens Minor
- # Server:Apache/2.2
- # ServerTokens:Min[imal]
- # Server:Apache/2.2.11
- # ServerTokens:OS
- # Server:Apache/2.2.11(unix)
- # ServerTokens:Full
- # Server:Apache/2.2.11(unix) PHP/5.3.2 Mymod/2.1
- #
- ServerTokens OS
#
# 安装服务器的基础目录
#
# ServerRoot指令设置了服务器所在的目录。一般来说它将包含conf/和logs/子目录。其它配置文件的相对路径即基于此目录 (比如Include或LoadModule)。
- # 不要添加斜线到目录树的结尾.
- ServerRoot "/etc/httpd"
# 重写机制模块开启
- RewriteEngine on
# 主进程文件,即相当于master_worker
- PidFile run/httpd.pid
# 响应超时时间 单位 秒
- # TimeOut指令用于设置Apache等待以下三种事件的时间长度:
- # 1.接受一个GET请求耗费的总时间
- # 2.POST或PUT请求时,接受两个TCP包之间的时间
- # 3.应答时TCP包传输中两个ACK包之间的时间
- # 默认60
- Timeout 120
# 支持HTTP持久链 默认关闭off
- # Keep-Alive扩展自HTTP/1.0和HTTP/1.1的持久链接特性。提供了长效的HTTP会话,用以在同一个TCP连接中进行多次请求。
- # 在某些情况下,这样的方式会对包含大量图片的HTML文档造成的延时起到50%的加速作用
- KeepAlive On
# 一个持久链接中允许的最大请求数量 如果设置为0表示持久链接请求为无限量 我们建议最好将此值设为一个比较大的值,以确保最优的服务器性能。
- MaxKeepAliveRequests 500
# 持久链接中服务器在两次请求之间等待的秒数 默认值为5秒。
# 对于高负荷服务器来说,KeepAliveTimeout值较大会导致一些性能方面的问题:超时值越大,与空闲客户端保持连接的进程就越多。
- KeepAliveTimeout 10
##
## 服务器池大小规则 (具体MPM)
- ## MPM:多处理模块(More Process Module)
- ## 多处理模块来兼容不同的操作系统如windows , linux ,freebsd,unix等。
- ## 不同系统的默认MPM
- ## |---------|--------------|
- ## | BeOS | beos |
- ## | Netware | mpm_netware |
- ## | OS/2 | mpmt_os2 |
- ## | Unix | prefork |
- ## | Windows | mpm_winnt |
- ## |---------|--------------|
# prefork 多处理模块(MPM)
- # prefork 功能:一个非线程型的、预派生的MPM,具有很强的自我调节能力。
- # StartServers: 服务器启动时建立的子进程数,因为子进程数量动态的取决于负载的轻重,所有一般没有必要调整这个参数
- # MinSpareServers: 空闲子进程的最小数量,所谓空闲子进程是指没有正在处理请求的子进程。
- # 如果当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。
- # MaxSpareServers: 空闲子进程的最大数量,所谓空闲子进程是指没有正在处理请求的子进程。
- # 如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。
- # ServerLimit: 服务器允许配置的进程数上限,对于preforkMPM,这个指令设置了MaxClients最大允许配置的数值。
- # 对于workerMPM,这个指令和ThreadLimit结合使用设置了MaxClients最大允许配置的数值。
- # 任何在重启期间对这个指令的改变都将被忽略,但对MaxClients的修改却会生效。
- # 使用这个指令时要特别当心。如果将ServerLimit设置成一个高出实际需要许多的值,将会有过多的共享内存被分配。
- # 如果将ServerLimit和MaxClients设置成超过系统的处理能力,Apache可能无法启动,或者系统将变得不稳定。
- # MaxClients: 允许同时伺服的最大接入请求数量.MaxClients指令设置了允许同时伺服的最大接入请求数量。
- # 任何超过MaxClients限制的请求都将进入等候队列,直到达到ListenBacklog指令限制的最大值为止。一旦一个链接被释放,队列中的请求将得到服务
- # MaxRequestsPerChild:每个子进程在其生存期内允许伺服的最大请求数量,到达MaxRequestsPerChild的限制后,子进程将会结束。
- # 如果MaxRequestsPerChild为"0",子进程将永远不会结束。
- <IfModule prefork.c>
- StartServers 8
- MinSpareServers 5
- MaxSpareServers 20
- ServerLimit 256
- MaxClients 256
- MaxRequestsPerChild 4000
- </IfModule>
# worker 多处理模块(MPM)
- # worker 功能:支持混合的多线程多进程的多路处理模块。由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM。
- # 参数说明 跟prefork多处理模块一样,不再详述
- <IfModule worker.c>
- StartServers 4
- MaxClients 300
- MinSpareThreads 25
- MaxSpareThreads 75
- ThreadsPerChild 25
- MaxRequestsPerChild 0
- </IfModule>
# 服务器监听的IP地址和端口
- # 语法:Listen [IP-address:]portnumber [protocol]
- # 示例:
- # Listen 80
- # Listen 800
- # Listen 192.168.1.162:88
- # Listen 192.168.1.168:89 https
- # Listen 99 http
- # ipv6
- # Listen [2001:db8::a00:20ff:fea7:ccea]:80
- # Listen [2001:db8::a00:20ff:fea7:ccea]:80 https/http/...
# 默认情况下Apache会在所有IP地址上监听。Listen是一个必须设置的指令。如果在配置文件中找不到这个指令,服务器将无法启动
- Listen 80
# 动态共享对象(DSO)加载
- # Example: LoadModule foo_module modules/mod_foo.so
- # 此模块使用HTTP基本认证,在认证支持模块的帮助下查找用户名和密码,从而进行访问控制
- LoadModule auth_basic_module modules/mod_auth_basic.so
- # 使用MD5摘要认证很简单。
- LoadModule auth_digest_module modules/mod_auth_digest.so
- # 该模块为认证前端(mod_auth_digest和mod_auth_basic)使用纯文本文件进行用户认证提供支持。mod_authn_dbm模块也提供类似的功能。
- LoadModule authn_file_module modules/mod_authn_file.so
- # 这个模块可以在配置文件中基于实际认证支持者创建扩展的认证支持者,并为它起一个别名以便于在AuthBasicProvider或AuthDigestProvider指令中像实际认证支持者一样被引用。
- # 此外,它还允许同一个认证支持者在不同的区域被多次引用。
- LoadModule authn_alias_module modules/mod_authn_alias.so
- # 提供匿名用户认证支持
- LoadModule authn_anon_module modules/mod_authn_anon.so
- # 使用DBM数据库为认证提供支持
- LoadModule authn_dbm_module modules/mod_authn_dbm.so
- # 该模块是一个失败补救(fallback)模块,它在未正确配置认证模块(比如mod_auth_basic)的情况下简单拒绝一切认证信息。
- LoadModule authn_default_module modules/mod_authn_default.so
- # 提供基于主机名、IP地址、请求特征的访问控制
- LoadModule authz_host_module modules/mod_authz_host.so
- # 基于每个用户提供授权支持
- LoadModule authz_user_module modules/mod_authz_user.so
- # 基于文件的所有者进行授权
- LoadModule authz_owner_module modules/mod_authz_owner.so
- # 使用纯文本文件为组提供授权支持
- LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
- # 使用DBM数据库文件为组提供授权支持
- LoadModule authz_dbm_module modules/mod_authz_dbm.so
- # 在未正确配置授权支持模块的情况下简单拒绝一切授权请求
- LoadModule authz_default_module modules/mod_authz_default.so
- # 为其它LDAP模块提供LDAP连接池和结果缓冲服务
- LoadModule ldap_module modules/mod_ldap.so
- # 允许使用一个LDAP目录存储用户名和密码数据库来执行基本认证和授权
- LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
- # 实现服务端包含文档(SSI)处理
- LoadModule include_module modules/mod_include.so
- # 允许记录日志和定制日志文件格式
- LoadModule log_config_module modules/mod_log_config.so
- # 对每个请求的输入/输出字节数以及HTTP头进行日志记录
- LoadModule logio_module modules/mod_logio.so
- # 允许Apache修改或清除传送到CGI脚本和SSI页面的环境变量
- LoadModule env_module modules/mod_env.so
- # 使用外部程序作为过滤器
- LoadModule ext_filter_module modules/mod_ext_filter.so
- # 通过读取部分文件内容自动猜测文件的MIME类型
- LoadModule mime_magic_module modules/mod_mime_magic.so
- # 允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容
- LoadModule expires_module modules/mod_expires.so
- # 压缩发送给客户端的内容
- LoadModule deflate_module modules/mod_deflate.so
- # 允许通过配置文件控制任意的HTTP请求和应答头信息
- LoadModule headers_module modules/mod_headers.so
- # 使用Session跟踪用户(会发送很多Cookie),以记录用户的点击流
- LoadModule usertrack_module modules/mod_usertrack.so
- # 根据客户端请求头字段设置环境变量
- LoadModule setenvif_module modules/mod_setenvif.so
- # 根据文件扩展名决定应答的行为(处理器/过滤器)和内容(MIME类型/语言/字符集/编码)
- LoadModule mime_module modules/mod_mime.so
- # 允许Apache提供DAV协议支持
- LoadModule dav_module modules/mod_dav.so
- # 生成描述服务器状态的Web页面
- LoadModule status_module modules/mod_status.so
- # 自动对目录中的内容生成列表,类似于"ls"或"dir"命令
- LoadModule autoindex_module modules/mod_autoindex.so
- # 生成Apache配置情况的Web页面
- LoadModule info_module modules/mod_info.so
- # 为mod_dav访问服务器上的文件系统提供支持
- LoadModule dav_fs_module modules/mod_dav_fs.so
- # 提供内容协商支持
- LoadModule negotiation_module modules/mod_negotiation.so
- # 指定目录索引文件以及为目录提供"尾斜杠"重定向
- LoadModule dir_module modules/mod_dir.so
- # 基于媒体类型或请求方法,为执行CGI脚本而提供
- LoadModule actions_module modules/mod_actions.so
- # 自动纠正URL中的拼写错误
- LoadModule speling_module modules/mod_speling.so
- # 允许用户从自己的主目录中提供页面(使用"/~username")
- LoadModule userdir_module modules/mod_userdir.so
- # 提供从文件系统的不同部分到文档树的映射和URL重定向
- LoadModule alias_module modules/mod_alias.so
- #
- LoadModule substitute_module modules/mod_substitute.so
- # 一个基于一定规则的实时重写URL请求的引擎
- LoadModule rewrite_module modules/mod_rewrite.so
- # 提供HTTP/1.1的代理/网关功能支持
- LoadModule proxy_module modules/mod_proxy.so
- # mod_proxy的扩展,提供负载平衡支持
- LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
- # mod_proxy的FTP支持模块
- LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
- # mod_proxy的HTTP支持模块
- LoadModule proxy_http_module modules/mod_proxy_http.so
- # mod_proxy的扩展,提供Apache JServ Protocol支持
- LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
- # mod_proxy的扩展,提供对处理HTTP CONNECT方法的支持
- LoadModule proxy_connect_module modules/mod_proxy_connect.so
- # 基于URI键的内容动态缓冲(内存或磁盘)
- LoadModule cache_module modules/mod_cache.so
- # 使用与调用web服务器的用户不同的用户身份来运行CGI和SSI程序
- LoadModule suexec_module modules/mod_suexec.so
- # 基于磁盘的缓冲管理器
- LoadModule disk_cache_module modules/mod_disk_cache.so
- # 在非线程型MPM(prefork)上提供对CGI脚本执行的支持
- LoadModule cgi_module modules/mod_cgi.so
- # 提供基于版本的配置段支持
- LoadModule version_module modules/mod_version.so
# 默认情况下不加载以下模块:
- #
- # 发送自己包含HTTP头内容的文件
- #LoadModule asis_module modules/mod_asis.so
- # 使用SQL数据库为认证提供支持
- #LoadModule authn_dbd_module modules/mod_authn_dbd.so
- # 允许Apache使用CERN httpd元文件,从而可以在发送文件时对头进行修改
- #LoadModule cern_meta_module modules/mod_cern_meta.so
- # 在线程型MPM(worker)上用一个外部CGI守护进程执行CGI脚本
- #LoadModule cgid_module modules/mod_cgid.so
- # 管理SQL数据库连接,为需要数据库功能的模块提供支持
- #LoadModule dbd_module modules/mod_dbd.so
- # 将所有I/O操作转储到错误日志中
- #LoadModule dumpio_module modules/mod_dumpio.so
- # 根据上下文实际情况对输出过滤器进行动态配置
- #LoadModule filter_module modules/mod_filter.so
- # 实现RFC1413规定的ident查找
- #LoadModule ident_module modules/mod_ident.so
- # 实现"对比日志",即在请求被处理之前和处理完成之后进行两次记录
- #LoadModule log_forensic_module modules/mod_log_forensic.so
- # 为每个请求生成唯一的标识以便跟踪
- #LoadModule unique_id_module modules/mod_unique_id.so
- #
- # 包含配置文件 配置文件来源于"/etc/httpd/conf.d/"配置目录
- # *.conf是包含所有的conf文件
- Include conf.d/*.conf
# 保持跟踪每个请求的扩展状态信息
- # 此设置适用于整个服务器,并不能启用或禁用一个虚拟主机,虚拟主机的基础上上。扩展状态信息的收集,可以减缓服务器。
- #ExtendedStatus On
# 设置用户和用户组 默认为apache 用户和apache用户组
- User apache
- Group apache
### 第二部分:主服务器配置。
#
# 本节中的指示成立的“主体”的服务器,任何未通过的<VirtualHost>定义处理的请求响应中使用的值。这
# 些数值也提供默认值,对于任何的<VirtualHost>容器,你可以定义在文件后。
#
# 所有这些指令可能会出现的<VirtualHost>容器内,在这种情况下,这些默认设置将被定义的虚拟主机覆盖。
#
# 服务器返回给客户端的错误信息中包含的管理员邮件地址
- ServerAdmin root@localhost
# 服务器用于辨识自己的主机名和端口号
- # 语法:ServerName fully-qualified-domain-name[:port]
- #
- #ServerName www.example.com:80
- ServerName *
# 配置服务器如何确定它自己的域名和端口
- # 在很多情况下,Apache必须构造一个自引用URL(即一个指回相同服务器的URL)。
- # 使用 UseCanonicalName On 会将ServerName这个域名用于所有自引用URL、SERVER_NAME、CGI中的SERVER_PORT 。
- # 默认off
- UseCanonicalName Off
# 组成网络上可见的主文档树的根目录
- DocumentRoot "/var/www/html"
# 封装一组指令,使之仅对文件空间中的某个目录及其子目录生效
# 语法:<Directory directory-path> ... </Directory>
<Directory />
- # 配置在特定目录中可以使用哪些特性
- # 语法: Options [+|-]option [[+|-]option] ...
- # 默认值:Options All
- # Options option list:
- # All 除MultiViews之外的所有特性。这是默认设置。
- # ExecCGI 允许使用mod_cgi执行CGI脚本。
- # FollowSymLinks 服务器允许在此目录中使用符号连接
- # Includes 允许使用mod_include提供的服务器端包含
- # IncludesNOEXEC 允许服务器端包含,但禁用"#exec cmd"和"#exec cgi"。但仍可以从ScriptAlias目录使用"#include virtual"虚拟CGI脚本。
- # Indexs 如果一个映射到目录的URL被请求,而此目录中又没有DirectoryIndex(例如:index.html),那么服务器会返回由mod_autoindex生成的一个格式化后的目录列表
- # MultiViews 允许使用mod_negotiation提供内容协商的"多重视图"(MultiViews)。
- # SymLinksIfOwnerMatch 服务器仅在符号连接与其目的目录或文件的拥有者具有相同的uid时才使用它。
- Options FollowSymLinks
- # 确定允许存在于.htaccess文件中的指令类型
# 语法:AllowOverride All|None|directive-type [directive-type] ...
# 当服务器发现一个.htaccess文件(由AccessFileName指定)时,它需要知道在这个文件中声明的哪些指令能覆盖在此之前指定的配置指令。
# AllowOverride仅在不包含正则表达式的<Directory>配置段中才是有效的。在<Location>, <DirectoryMatch>, <Files>配置段中都是无效的。
# 如果此指令被设置为None ,那么.htaccess文件将被完全忽略。事实上,服务器根本不会读取.htaccess文件
# 当此指令设置为 All时,所有具有".htaccess"作用域的指令都允许出现在.htaccess文件中。
# directive-type指令:
# AuthConfig 允许使用与认证授权相关的指令(AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, 等)。
# FileInfo 允许使用控制文档类型的指令 控制文档元数据的指令
# Indexs 允许使用控制目录索引的指令(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon,
# DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, 等)
# Limit 允许使用控制主机访问的指令(Allow, Deny, Order)。
AllowOverride None
</Directory>
- <Directory "/var/www/html">
- Options Indexes FollowSymLinks
- #对于url重写以下配置是非常重要的 不过它的优先级最小
- #默认值AllowOverride none
- AllowOverride All
- # 控制默认的访问状态与Allow和Deny指令生效的顺序
- # Ordering取值范围是以下几种范例之一:
- # Deny,Allow Deny指令在Allow指令之前被评估。默认允许所有访问。任何不匹配Deny指令或者匹配Allow指令的客户都被允许访问。
- # Allow,Deny Allow指令在Deny指令之前被评估。默认拒绝所有访问。任何不匹配Allow指令或者匹配Deny指令的客户都将被禁止访问
- # Mutual-failure 只有出现在Allow列表并且不出现在Deny列表中的主机才被允许访问。这种顺序与"Order Allow,Deny"具有同样效果,不赞成使用。
- # 关键字只能用逗号分隔;它们之间不能有空格。注意在所有情况下每个Allow和Deny指令语句都将被评估.
Order allow,deny
# Allow指令控制哪些主机可以访问服务器的该区域。可以根据主机名、IP地址、 IP地址范围或其他环境变量中捕获的客户端请求特性进行控制。
- # 语法:Allow from all|host|envenv=env-variable [host|envenv=env-variable] ...
- # 总是以 Allow from开头
- # example:
- # Allow from all
- # Allow from apache.org
- # Allow from .net example.edu
- # Allow from 10.1
- # Allow from 10 172.20 192.168.2
- # Allow from 10.1.0.0/255.255.0.0
- # Allow from 10.1.0.0/16
- # Allow from env=let_me_in
- # ipv6
- # Allow from 2001:db8::a00:20ff:fea7:ccea
- # Allow from 2001:db8::a00:20ff:fea7:ccea/10
- Allow from all
# 这条指令允许基于主机名、IP地址或者环境变量限制对服务器的访问。Deny指令的参数设置和Allow指令完全相同
- Deny from 10.1.1.1
- rectory>
# <IfModule test>...</IfModule>配置段用于封装根据指定的模块是否启用而决定是否生效的指令。 # 在<IfModule>配置段中的指令仅当test为真的时候才进行处理。如果test为假,所有其间的指令都将被忽略。 # <IfModule [!]module-file|module-identifier> ... </IfModule> # 允许用户从自己的主目录中提供页面(使用"/~username")
- <IfModule mod_userdir.c>
- # 用户网站目录的位置
- # 语法 : UserDir directory-filename
- # UserDir指令指定了用户目录下的一个实实在在的目录,存放了该用户提供访问的文档。Directory-filename可以是以下几种形式之一:
- # 一个目录名或如下所示的匹配模式:
- # 关键词disabled停止所有用户名到目录的转换,但不包括明确使用enabled启用的(见下面)目录
- # 关键词disabled并跟随一个以空格分隔的用户名列表(其中的用户即使出现在enabled的用户列表中,也不会进行目录转换)。
- # 关键词enabled并跟随一个以空格分隔的用户名列表。
- # 如果在Userdir指令中,既没有enabled也没有disabled关键词,则其参数将被视为文件匹配模式,用于转换成目录名。对http://www.foo.com/~bob/one/two.html的请求会被转换为
- # UserDir 指令 转换后的路径
- # UserDir public_html ~bob/public_html/one/two.html
- # UserDir /usr/web /usr/web/bob/one/two.html
- # UserDir /home/*/www /home/bob/www/one/two.html
- UserDir disabled
- </IfModule>
# 控制访问的UserDir目录。下面是一个为这些目录限制为只读的网站的例子。
- #<Directory /home/*/public_html>
- # AllowOverride FileInfo AuthConfig Limit
- # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
- # <Limit GET POST OPTIONS>
- # Order allow,deny
- # Allow from all
- # </Limit>
- # <LimitExcept GET POST OPTIONS>
- # Order deny,allow
- # Deny from all
- # </LimitExcept>
- #</Directory>
# 目录默认索引文件 即默认访问的入口文件 优先级别从左到右
- DirectoryIndex index.html index.php index.html.var
# 分布式配置文件的名字
- AccessFileName .htaccess
# <Files>指令提供了基于文件名的访问控制,类似于<Directory>和<Location>指令。它将配对一个</Files>指令。 # 在此配置段中定义的指令将作用于其基本名称(不是完整的路径)与指定的文件名相符的对象。 # <Files>段将根据它们在配置文件中出现的顺序被处理:在<Directory>段和.htaccess文件被处理之后,但在<Location>段之前。 # 请注意:<Files>能嵌入到<Directory>段中以限制它们作用的文件系统范围。 #
- # <Files ~ "\.(gif|jpe?g|png)$">
- <Files ~ "^\.ht">
- Order allow,deny
- Deny from all
- # 主机级别的访问控制和用户认证之间的相互关系
- # Satisfy Any|All
- # 默认 Satisfy All
- Satisfy All
- </Files>
# 指定mime.types文件的位置·
- TypesConfig /etc/mime.types
# 在服务器无法由其他方法确定内容类型时,发送的默认MIME内容类型
- DefaultType text/plain
# 通过读取部分文件内容自动猜测文件的MIME类型
- <IfModule mod_mime_magic.c>
- # 使用特定的Magic文件激活根据文件内容确定文件MIME类型的功能
- # 默认: MIMEMagicFile /usr/share/magic.mime
- MIMEMagicFile conf/magic
- </IfModule>
# 此指令启用了DNS查询,使得主机名能被记入日志(并用REMOTE_HOST变量传递给CGI/SSI)。参数Double指定进行一次双向DNS查询。 # 也就是说在一次反向查询之后,再对返回的结果进行一次正向查询。在正向查询结果中至少应该有一个ip地址与初始的地址相符。
- # 语法: HostnameLookups On|Off|Double
- HostnameLookups Off
# 在递送中使用内存映射(memory-mapping)来读取文件 # 这种内存映射有时会带来性能的提高,但在某些情况下,您可能会需要禁用内存映射以避免一些操作系统的问题
- # 默认值:EnableMMAP On
- #EnableMMAP off
# 使用操作系统内核的sendfile支持来将文件发送到客户端 # 默认情况下,当处理一个请求并不需要访问文件内部的数据时(比如发送一个静态的文件内容), # 如果操作系统支持,Apache将使用sendfile将文件内容直接发送到客户端而并不读取文件。 # 这个sendfile机制避免了分开的读和写操作以及缓冲区分配,但是在一些平台或者一些文件系统上,最好禁止这个特性来避免一些问题
- # 默念值:EnableSendfile On
- #EnableSendfile off
# 存放错误日志的位置
- ErrorLog logs/error_log
# 控制错误日志的详细程度
- # 默认值:LogLevel warn
- # 错误日志级别展示:
- # emerg: 紧急系统无法使用
- # alert: 必须立即采取措施
- # crit: 致命错误
- # error: 错误情况
- # warn: 警告情况
- # notice: 一般重要情况
- # info: 普通信息
- # debug: 调试信息
- # 当指定了某个级别时,所有级别高于它的信息也会被同时记录。比如,指定 LogLevel info ,则所有notice和warn级别的信息也会被记录。
- LogLevel warn
# 定义访问日志的记录格式
- # 语法:LogFormat format|nickname [nickname]
- # 参数说明详见:http://hi.baidu.com/b2b_atm/blog/item/2c948f03350f30d07a8947b2.html
- LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
- LogFormat "%h %l %u %t \"%r\" %>s %b" common
- LogFormat "%{Referer}i -> %U" referer
- LogFormat "%{User-agent}i" agent
# 需要的mod_logio模块被加载。
- #LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combi
nedio
# 设定日志的文件名和格式
- # 语法: CustomLog file|pipe format|nickname [env=[!]environment-variable]
- #CustomLog logs/access_log common
# 如果你想有单独的代理和引用者日志文件
- #CustomLog logs/referer_log referer
- #CustomLog logs/agent_log agent
# 对于单个日志文件访问,代理和引用者的信息(合并日志文件格式),请使用以下指令:
- CustomLog logs/access_log combined
# 配置服务器生成页面的页脚
- # 语法:ServerSignature On|Off|EMail
- ServerSignature On
# 映射URL到文件系统的特定区域
- # 语法: Alias URL-path file-path|directory-path
# 图标别名
- Alias /icons/ "/var/www/icons/"
- <Directory "/var/www/icons">
- Options Indexes MultiViews FollowSymLinks
- AllowOverride None
- Order allow,deny
- Allow from all
- </Directory>
- # phpMyAdmin别名
- Alias /phpMyAdmin "/var/www/phpMyAdmin"
- <Directory "/var/www/phpMyAdmin">
- Options Indexes Multiviews FollowSymLinks
- AllowOverride None
- Order allow,deny
- Allow from all
- </Directory>
# WebDAV 模块配置
- # 允许Apache提供DAV协议支持
- <IfModule mod_dav_fs.c>
- # WebDAV锁定数据库的位置。
- DAVLockDB /var/lib/dav/lockdb
- </IfModule>
# 映射一个URL到文件系统并视之为CGI脚本
- # 语法: ScriptAlias URL-path file-path|directory-path
- # ScriptAlias指令的行为与Alias指令相同,但同时它又标明此目录中含有应该由cgi-script处理器处理的CGI脚本。
- # 以URL-path开头的(%已解码的)的URL会被映射到由第二个参数指定的具有完整路径名的本地文件系统中的脚本。
- ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
- <Directory "/var/www/cgi-bin">
- AllowOverride None
- Options None
- Order allow,deny
- Allow from all
- </Directory>
# 该指令将一个老URL映射为一个新URL,此新URL被返回到客户端使之重定向到一个新地址
- # 语法:Redirect [status] URL-path URL
- Redirect /b2b_atm http://hi.baidu.com/b2b_atm/home
# 服务器目录指令控制 # 控制索引选项
- IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8
# 图标旁边显示所选文件的MIME内容编码
- AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
# 图标旁边显示选定文件的MIME内容类型
- AddIconByType (TXT,/icons/text.gif) text/*
- AddIconByType (IMG,/icons/image2.gif) image/*
- AddIconByType (SND,/icons/sound2.gif) audio/*
- AddIconByType (VID,/icons/movie.gif) video/*
# 按名称选择了一个文件图标,来显示
- AddIcon /icons/binary.gif .bin .exe
- AddIcon /icons/binhex.gif .hqx
- AddIcon /icons/tar.gif .tar
- AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
- AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
- AddIcon /icons/a.gif .ps .ai .eps
- AddIcon /icons/layout.gif .html .shtml .htm .pdf
- AddIcon /icons/text.gif .txt
- AddIcon /icons/c.gif .c
- AddIcon /icons/p.gif .pl .py
- AddIcon /icons/f.gif .for
- AddIcon /icons/dvi.gif .dvi
- AddIcon /icons/uuencoded.gif .uu
- AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
- AddIcon /icons/tex.gif .tex
- AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
# 默认图标
- DefaultIcon /icons/unknown.gif
# 描述显示文件
- AddDescription "GZIP compressed document" .gz
- AddDescription "tar archive" .tar
- AddDescription "GZIP compressed tar archive" .tgz
# ReadmeName服务器将默认的README文件的名称,并追加到目录列表。 # HeaderName是应该预先考虑的一个目录索引的文件的名称。
- ReadmeName README.html
- HeaderName HEADER.html
# IndexIgnore是一组文件名,目录索引应该忽略和显示,不包括。 shell风格的通配符是允许的。
- IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
# 在文件扩展名与特定的语言之间建立映射 # 指定默认语言。这意味着所有没有一个具体的语言标记(见下文)的数据将在这件事上标明。 # 你可能不希望设置,除非你确信这是正确的所有情况。 # # 加泰罗尼亚语(CA) - 克罗地亚(HR) - 捷克(CS) - 丹麦(DA) - 荷兰(NL) # 英语(en) - 世界语(EO) - 爱沙尼亚(ET) - 法语(fr) - 德国(DE) # 希腊现代(EL) - 希伯来语(他) - 意大利(IT) - 日本(JA) # 韩国(KO) - 卢森堡*(LTZ) - 挪威尼诺斯克(NN) # 挪威(NO) - 波兰(PL) - 葡萄牙(PT) # 巴西葡萄牙语(PT - BR) - 俄罗斯(RU) - 瑞典(SV) # 简体中文(ZH - CN) - 西班牙(ES) - 繁体中文(ZH - TW) AddLanguage ca .ca AddLanguage cs .cz .cs AddLanguage da .dk AddLanguage de .de AddLanguage el .el AddLanguage en .en AddLanguage eo .eo AddLanguage es .es AddLanguage et .et AddLanguage fr .fr AddLanguage he .he AddLanguage hr .hr AddLanguage it .it AddLanguage ja .ja AddLanguage ko .ko AddLanguage ltz .ltz AddLanguage nl .nl AddLanguage nn .nn AddLanguage no .no AddLanguage pl .po AddLanguage pt .pt AddLanguage pt-BR .pt-br AddLanguage ru .ru AddLanguage sv .sv AddLanguage zh-CN .zh-cn AddLanguage zh-TW .zh-tw # 在客户端没有指示语言偏好的情况下,语言变体的优先级列表
- # 语法:LanguagePriority MIME-lang [MIME-lang] ...
- LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN z
- h-TW
# 指定无法匹配单个文档的情况下所采取的动作
- # 语法:ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]
- ForceLanguagePriority Prefer Fallback
# 当应答内容是text/plain或text/html时,在HTTP应答头中加入的默认字符集
- # 语法:AddDefaultCharset On|Off|charset
- AddDefaultCharset UTF-8
# 在给定的文件扩展名与特定的内容类型之间建立映射
- #AddType application/x-tar .tgz
# 在文件扩展名与特定的编码方式之间建立映射关系
- #AddEncoding x-compress .Z
- #AddEncoding x-gzip .gz .tgz
# 在给定的文件扩展名与特定的内容类型之间建立映射
- AddType application/x-compress .Z
- AddType application/x-gzip .gz .tgz
# 下载证书和CRL的MIME类型
- AddType application/x-x509-ca-cert .crt
- AddType application/x-pkcs7-crl .crl
# 在文件扩展名与特定的处理器之间建立映射 # 一旦将上述定义放在你的http.conf文件中,所有包含.cgi扩展名的文件,都会被当成是CGI程序。
- #AddHandler cgi-script .cgi
- #AddHandler send-as-is asis
- AddHandler type-map var
AddType text/html .shtml
- # 在文件扩展名与特定的输出过滤器之间建立映射关系
- AddOutputFilter INCLUDES .shtml
# 重定向错误页面
- #ErrorDocument 500 "The server made a boo boo."
- #ErrorDocument 404 /missing.html
- #ErrorDocument 404 "/cgi-bin/missing_handler.pl"
- #ErrorDocument 402 http://www.example.com/subscription_info.html
# 错误重定向
- Alias /error/ "/var/www/error/"
- <IfModule mod_negotiation.c>
- <IfModule mod_include.c>
- <Directory "/var/www/error">
- AllowOverride None
- Options IncludesNoExec
- AddOutputFilter Includes html
- AddHandler type-map var
- Order allow,deny
- Allow from all
- LanguagePriority en es de fr
- ForceLanguagePriority Prefer Fallback
- </Directory>
- # ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
- # ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
- # ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
- # ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
- # ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
- # ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
- # ErrorDocument 410 /error/HTTP_GONE.html.var
- # ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
- # ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
- # ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
- # ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
- # ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
- # ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
- # ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
- # ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
- # ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
- # ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
- </IfModule>
- </IfModule>
# 基于User-Agent头有条件地设置环境变量
- # 下面的指令修改正常的HTTP响应行为来处理浏览器实现的已知问题。
- BrowserMatch "Mozilla/2" nokeepalive
- BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
- BrowserMatch "RealPlayer 4\.0" force-response-1.0
- BrowserMatch "Java/1\.0" force-response-1.0
- BrowserMatch "JDK/1\.0" force-response-1.0
# 下面的指令禁用重定向非GET请求一个目录,不包括结尾的斜线。这修正了与微软WebFolders的问题不妥善处理与文件夹的DAV方法重定向。 # 同样的处理与苹果的DAV文件系统和Gnome VFS对DAV的支持。
- BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
- BrowserMatch "MS FrontPage" redirect-carefully
- BrowserMatch "^WebDrive" redirect-carefully
- BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
- BrowserMatch "^gnome-vfs/1.0" redirect-carefully
- BrowserMatch "^XML Spy" redirect-carefully
- BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
# 允许服务器状态报告生成,由mod_status http://servername/server-status网址更改
- #<Location /server-status>
- # SetHandler server-status
- # Order deny,allow
- # Deny from all
- # Allow from .example.com
- #</Location>
# 允许远程服务器配置报告,http://servername/server-info网址(需要加载mod_info.c)。
- #<Location /server-info>
- # SetHandler server-info
- # Order deny,allow
- # Deny from all
- # Allow from .example.com
- #</Location>
# 代理服务器指令
- #<IfModule mod_proxy.c>
- # 启用正向(标准)代理请求
- #ProxyRequests On
- #<Proxy *>
- # Order deny,allow
- # Deny from all
- # Allow from .example.com
- #</Proxy>
# 控制代理对Via应答头的使用
- # 语法:ProxyVia On|Off|Full|Block
- # 如果设置为默认值Off ,将不会采取特殊的处理。如果一个请求或应答包含"Via:"头,将不进行任何修改而直接通过。
- # 如果设置为On每个请求和应答都会对应当前主机得到一个"Via:"头。
- # 如果设置为Full ,每个产生的"Via:"头中都会额外加入Apache服务器的版本,以"Via:"注释域出现。
- # 如果设置为Block ,每个代理请求中的所有"Via:"头行都将被删除。且不会产生新的"Via:"头。
- #ProxyVia On
- #
- # 为了使缓存代理的内容,取消以下行。
- #<IfModule mod_disk_cache.c>
- # CacheEnable disk /
- # CacheRoot "/var/cache/mod_proxy"
- #</IfModule>
- #
- #</IfModule>
### 弟三部分:虚拟主机
- # 使用基于域名的虚拟主机。
- #NameVirtualHost *:80
- #
- # 注:NameVirtualHost不能没有端口规范(如:80)如果正在使用mod_ssl的是,由于SSL协议的性质。
- # 虚拟主机实例
- ##<VirtualHost *:80>
- # ServerAdmin [email protected]
- # DocumentRoot /www/docs/dummy-host.example.com
- # ServerName dummy-host.example.com
- # ErrorLog logs/dummy-host.example.com-error_log
- # CustomLog logs/dummy-host.example.com-access_log common
- #</VirtualHost>
- <VirtualHost *:80>
- DocumentRoot /var/www/html
- ServerName localhost
- #ErrorLog logs/dummy-host.example.com-error_log
- #CustomLog logs/dummy-host.example.com-access_log common
- </VirtualHost>