最新消息:

Apache 的配置文件介绍

Apache 主配置文件位于 conf 目录中,名为 httpd.conf。httpd.conf 包含丰富的选项配置供用户选择,下面是一些主要配置项的含义说明。

//设置服务器的基础目录,默认为 Apache 安装目录
ServerRoot "/usr/local/apache2"
//设置服务器监听的 IP 和端口
Listen 80
//设置管理员邮件地址
ServerAdmin root@test.com
//设置服务器用于辨识自己的主机名和端口号
ServerName www.test.com:80
//设置动态加载的 DSO 模块,不同版本可能此处模块有所不同
LoadModule authn_core_module modules/mod_authn_core.so
//基于主机的认证(通常是IP地址或域名)
LoadModule access_compat_module modules/mod_access_compat.so
//如需提供基于文本文件的认证则启用此模块
LoadModule authn_file_module modules/mod_authn_file.so
//如需提供基于 DBM 文件的认证则启用此模块
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
//如需提供匿名用户认证则启用此模块
LoadModule authn_anon_module modules/mod_authn_anon.so
//需要提供基于 SQL 数据库的认证则启用此模块
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
//使用 ldap 认证时启用此模块
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
//形式认证
#LoadModule auth_form_module modules/mod_auth_form.so
//如需在未正确配置认证模块的情况下简单拒绝一切认证信息则启用此模块
LoadModule authn_default_module modules/mod_authn_default.so
//此模块提供基于主机名、IP 地址、请求特征的访问控制,Allow、Deny 指令需要,推荐加载。
LoadModule authz_host_module modules/mod_authz_host.so
//如需使用纯文本文件为组提供授权支持则启用此模块
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
//如需提供基于每个用户的授权支持则启用此模块
LoadModule authz_user_module modules/mod_authz_user.so
//如需使用 DBM 文件为组提供授权支持则启用此模块
LoadModule authz_dbm_module modules/mod_authz_dbm.so
//如需基于文件的所有者进行授权则启用此模块
LoadModule authz_owner_module modules/mod_authz_owner.so
//如需提供基本的 HTTP 认证则启用此模块,此模块至少需要同时加载一个认证支持模块和一个授权支持模块
LoadModule auth_basic_module modules/mod_auth_basic.so
//如需提供 HTTP MD5 摘要认证则启用此模块,此模块至少需要同时加载一个认证支持模块和一个授权支持模块
LoadModule auth_digest_module modules/mod_auth_digest.so
//此模块可用于限制表单提交方式
#LoadModule allowmethods_module modules/mod_allowmethods.so
//共享对象缓存,这是一个 HTTP 缓存过滤器的基础
#LoadModule cache_socache_module modules/mod_cache_socache.so
//下面这几个是提供不同的共享对象缓存的模块
#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
#LoadModule socache_dbm_module modules/mod_socache_dbm.so
#LoadModule socache_memcache_module modules/mod_socache_memcache.so
//httpd运行时的配置宏文件支持
#LoadModule macro_module modules/mod_macro.so
//此模块提供文件描述符缓存支持,从而提高 Apache 性能,推荐加载,但请小心使用
LoadModule file_cache_module modules/mod_file_cache.so
//此模块提供基于 URI 键的内容动态缓存从而提高 Apache 性能,必须与 mod_disk_cache/mod_mem_cache 同时使用,推荐加载
LoadModule cache_module modules/mod_cache.so
//此模块为 mod_cache 提供基于磁盘的缓存管理,推荐加载
LoadModule disk_cache_module modules/mod_cache_disk.so
//此模块为 mod_cache 提供基于内存的缓存管理,推荐加载
LoadModule mem_cache_module modules/mod_mem_cache.so
//如需管理 SQL 数据库连接,为需要数据库功能的模块提供支持则启用此模块(推荐)
LoadModule dbd_module modules/mod_dbd.so
//支持请求缓冲
#LoadModule buffer_module modules/mod_buffer.so
//客户端带宽限制
#LoadModule ratelimit_module modules/mod_ratelimit.so
//用于设置请求超时和最小数据速度
LoadModule reqtimeout_module modules/mod_reqtimeout.so
//用来处理 HTTP 请求
#LoadModule request_module modules/mod_request.so
//用来执行搜索和替换操作的模块
#LoadModule substitute_module modules/mod_substitute.so
//使用 sed 来过滤清求和响应的模块
#LoadModule sed_module modules/mod_sed.so
//此模块将所有 I/O 操作转储到错误日志中,会导致在日志中写入及其海量的数据,只建议在发现问题并进行调试时使用
LoadModule dumpio_module modules/mod_dumpio.so
//如需使用外部程序作为过滤器,加载此模块(不推荐),否则注释掉
LoadModule ext_filter_module modules/mod_ext_filter.so
//如需实现服务端包含文档(SSI)处理,加载此模块(不推荐),否则注释掉
LoadModule include_module modules/mod_include.so
//如需根据上下文实际情况对输出过滤器进行动态配置则启用此模块
LoadModule filter_module modules/mod_filter.so
//如需服务器在将输出内容发送到客户端以前进行压缩以节约带宽,加载此模块(推荐),否则注释掉
#LoadModule deflate_module modules/mod_deflate.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
//如果允许通过配置文件控制 HTTP 的"Expires:"和"Cache-Control:"头内容,加载此模块(推荐),否则注释掉
LoadModule expires_module modules/mod_expires.so
//如果允许通过配置文件控制任意的 HTTP 请求和应答头信息则启用此模块
LoadModule headers_module modules/mod_headers.so
//如需实现 RFC1413 规定的 ident 查找,加载此模块(不推荐),否则注释掉
LoadModule ident_module modules/mod_ident.so
//如需根据客户端请求头字段设置环境变量则启用此模块
LoadModule setenvif_module modules/mod_setenvif.so
//提供代理支持
#LoadModule proxy_module modules/mod_proxy.so
//下面几个是代理模块 mod_proxy 的支持模块
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
//此模块是 mod_proxy 的扩展,提供 Apache JServ Protocol 支持,只在必要时加载
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
//此模块是 mod_proxy 的扩展,提供负载均衡支持,只在必要时加载
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
//提供安全套接字层和传输层安全协议支持
#LoadModule ssl_module modules/mod_ssl.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
//如需自动对目录中的内容生成列表则加载此模块,否则注释掉
LoadModule autoindex_module modules/mod_autoindex.so
//如需服务器发送自己包含 HTTP 头内容的文件则启用此模块
LoadModule asis_module modules/mod_asis.so
//如需生成 Apache 配置情况的 Web 页面,加载此模块(会带来安全问题,不推荐),否则注释掉
LoadModule info_module modules/mod_info.so
//如需在非线程型 MPM(prefork)上提供对 CGI 脚本执行的支持则启用此模块
LoadModule cgi_module modules/mod_cgi.so
//此模块在线程型 MPM(worker)上用一个外部 CGI 守护进程执行 CGI 脚本,如果正在多线程模式下使用 CGI 程序,推荐替换 mod_cgi 加载,否则注释掉
LoadModule cgid_module modules/mod_cgid.so
//此模块为 mod_dav 访问服务器上的文件系统提供支持,如果加载 mod_dav,则也应加载此模块,否则注释掉
LoadModule dav_fs_module modules/mod_dav_fs.so
//如需提供大批量虚拟主机的动态配置支持则启用此模块
LoadModule vhost_alias_module modules/mod_vhost_alias.so
//如需提供内容协商支持(从几个有效文档中选择一个最匹配客户端要求的文档),加载此模块(推荐),否则注释掉
LoadModule negotiation_module modules/mod_negotiation.so
//如需指定目录索引文件以及为目录提供"尾斜杠"重定向,加载此模块(推荐),否则注释掉
LoadModule dir_module modules/mod_dir.so
//如需处理服务器端图像映射则启用此模块
LoadModule imagemap_module modules/mod_imagemap.so
//如需针对特定的媒体类型或请求方法执行 CGI 脚本则启用此模块
LoadModule actions_module modules/mod_actions.so
//如果希望服务器自动纠正 URL 中的拼写错误,加载此模块(推荐),否则注释掉
LoadModule speling_module modules/mod_speling.so
//如果允许在 URL 中通过"/~username"形式从用户自己的主目录中提供页面则启用此模块
LoadModule userdir_module modules/mod_userdir.so
//此模块提供从文件系统的不同部分到文档树的映射和 URL 重定向,推荐加载
LoadModule alias_module modules/mod_alias.so
//如需基于一定规则实时重写 URL 请求,加载此模块(推荐),否则注释掉
LoadModule rewrite_module modules/mod_rewrite.so
//仅当加载 unixd 模块才启用下面的设置项
<IfModule unixd_module>
//设置子进程的用户和组
User apacheGroup apache
</IfModule>
//设置 Web 文档根目录的默认属性
<Directory />
AllowOverride None
Require all denied
</Directory>
//设置默认 Web 文档根目录
DocumentRoot "/usr/local/apache2/htdocs"
//设置 DocumentRoot 指定目录的属性
<Directory "/usr/local/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
//设置默认目录资源列表文件
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
//拒绝对 .ht 开头文件的访问,以保护 .htaccess 文件
<Files ".ht">
Require all denied
</Files>
//指定错误日志文件
ErrorLog "logs/error_log"
//指定记录到错误日志的消息级别
LogLevel warn
//当加载了 log_config 模块时生效
<IfModule log_config_module>
//定义访问日志的格式
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" common
</IfModule>
//设定默认 CGI 脚本目录及别名
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
</IfModule>
//设定默认 CGI 脚本目录的属性
<Directory "/usr/local/apache2/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
//设定默认 MIME 内容类型
DefaultType text/plain
<IfModule mime_module>
//WEB 指定 MIME 类型映射文件
TypesConfig conf/mime.types
//WEB 增加 .Z .tgz 的类型映射
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
</IfModule>
//启用内存映射
EnableMMAP on
//使用操作系统内核的 sendfile 支持来将文件发送到客户端
EnableSendfile on
//指定多路处理模块(MPM)配置文件并将其附加到主配置文件
Include conf/extra/httpd-mpm.conf
//指定多语言错误应答配置文件并将其附加到主配置文件
Include conf/extra/httpd-multilang-errordoc.conf
//指定目录列表配置文件并将其附加到主配置文件
Include conf/extra/httpd-autoindex.conf
//指定语言配置文件并将其附加到主配置文件
Include conf/extra/httpd-languages.conf
//指定用户主目录配置文件并将其附加到主配置文件
Include conf/extra/httpd-userdir.conf
//指定用于服务器信息和状态显示的配置文件并将其附加到主配置文件
Include conf/extra/httpd-info.conf
//指定加载虚拟主机的配置文件
Include conf/extra/httpd-vhosts.conf
//指定提供 Apache 文档访问的配置文件并将其附加到配置文件
Include conf/extra/httpd-manual.conf
//指定 DAV 配置文件并将其附加到主配置文件
Include conf/extra/httpd-dav.conf
//指定与 Apache 服务自身相关的配置文件并将其附加到主配置文件
Include conf/extra/httpd-default.conf
//如果加载了 proxy_html 相关模块,则将其配置文件附加到主配置文件
<IfModule proxy_html_module>
Include conf/extra/proxy-html.conf
</IfModule>
//SSL 默认配置
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

以上是配置文件 httpd.conf 中最主要的配置项及其说明,其中模块部分并未完全列举。要查询各个模块的详细用法及说明,可以参考 https://httpd.apache.org/docs/2.4/mod/ 中的相关文档了解。

注意:Apache 有着众多的模块,通常如果没有特殊需要没有必要修改加载的相关设置。

好了,Apache 的配置文件介绍 就分享到这里,非常感谢你的来访。如果你喜欢本站,请不要忘记收藏本站,以便下次继续访问;也可以 关注站长微博 随时获取最新动态。你的支持就是我最大的动力!

转载请注明:爱维科斯 » Apache 的配置文件介绍

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者