Apache 配置文件解析及虚拟机配置示例

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介:

配置文件详细解析
Apache配置文件默认位于/usr/local/apache2/conf目录下,在该目录下最主要的配置文件是httpd.conf文件,还有一些位于extra目录下的附加配置文件。此外original目录中存有所有这些配置文件的副本。Apache HTTP Sever主配置文件主要由指令以及容器组成,容器使用<容器名称>开始,</容器名称>结尾,容器的指令一般仅在局部有效。下面是对主配置文件重点指定的具体描述。
SeverRoot指令
ServerRoot指令设置Apache软件的安装主目录,如果采用源码安装则默认路径为/usr/local/apache2。
Listen指令
Listen指令设置服务器监听的IP以及端口号,默认监听服务器本机所有的IP地址的80端口。语法格式为Listen [IP地址:]端口 [协议],其中IP地址与协议为可选项,默认监听所有IP,使用TCP协议。一个配置文件中可以多次使用Listen指令来开启多个端口。
LoadModule指令
Apache HTTP Server的特色之一就是她的功能多数是以模块方式加载的,但如果希望Apache动态加载模块,需要在编译Apache时通过--enable-so将mod_so以静态方式编译到Apache核心模块中,LoadModule指令的作用就是加载模块。语法格式为LoadModule 模块 模块文件名称,模块文件一般位于ServerRoot指定目录下的modules目录中。
LoadFile指令
LoadFile指令功能类似于LoadModule,区别在于LoadFile可以通过绝对路径加载modules目录以为的模块文件。
ServerAdmin指令
当网站出现故障时,需要为客户提供一个可以帮助解决问题的邮件地址,ServerAdmin指令的作用就是提供这样的邮件地址。
ServerName指令
ServerName指令设置服务器本机的主机名称以及端口,对于URL地址的重定向很重要。
DocumentRoot指令
该指令设置Web服务对客户端开放可见的文档根目录,也就是客户端访问网站的根路径,/usr/local/apache2/htdocs。
ErrorLog指令
ErrorLog定位服务器错误日志的位置,默认使用相对路径,为ServerRoot指定目录下的”logs/error_log”文件。
ErrorLogFormat指令
设置错误日志的格式,Apache HTTP Server事先定义了很多格式字串 可以直接引用。
CustomLog指令
该指令设置客户端的访问日志文件名以及日志格式,默认为”logs/access_log”,语法格式为CustomLog 文件名 格式。
LogFormat指令
描述用户日志文件格式,可以直接使用Apache预先设置的格式字串,一般我们会为LogFormat指令设置的日志格式创建别名,然后可以再通过CustomLog指令调用该日志格式别名。
Include指令
Include指令允许Apache在主配置文件中加载其他的配置文件,该指令语法比较简单,Inclde指令后直接跟上其他附加配置文件路径即可。
Options指令
为特定目录设置选项,语法格式为Options [+|-]选项 [[+|-]选项]。选项可以设置为None,代表不启用任何额外功能,也可以使用如下常用选项。
All:开启出来MultiViews之外的所有选项。
ExecCGI:允许执行CGI脚本。
FollowSymlinks:允许目录下通过链接文件链接到目录外的文件或目录。
Indexes:如果与URL对应的目录下,没有DirectoryIndex指定的首页文档,则Apache
将会把当前目录的所有文件索引出来。
Order指令
控制默认访问状态以及Allow与Deny次序,如果使用Order deny,allow,则先检查拒绝,没有拒绝则默认允许。如何使用Order allow,deny,则先检查允许,没有允许则默认拒绝。
以下为具体案例:
Order deny,allow
Deny from all
先检查拒绝规则,再检查允许规则,默认为允许。这里Deny From all代表拒绝所有,所以最终结果为拒绝所有。
Order Allow,Deny
allow from All
先检查允许规则,再检查拒绝规则,allow from all代表允许所有,所以最终结果为允许所有。
Order Allow,Deny
allow from 192.168.0.1
先检查允许规则时允许192.168.0.1,其余为默认值,默认为拒绝所有,最终除192.168.0.1外拒绝所有。
Order Allow,Deny
allow from 192.168.0.1
Deny from All
先检查允许规则时允许192.168.0.1访问,但检查拒绝规则时为拒绝所有,而192.168.0.1也包含在all之中,当Allow与Deny有冲突时,以Order最后的规则覆盖其他的规则,本案例将使用Deny规则覆盖Allow规则,最终效果为拒绝所有人访问。
Order Deny,Allow
Deny from all
allow from 192.168.0.1
先检查拒绝规则,再检查允许规则,拒绝规则为拒绝所有,允许规则为允许192.168.0.1,拒绝与允许规则有冲突的部分本案例将采用Allow的规则,最终本案例可以实现仅允许192.168.0.1访问,其他任何主机均无法访问Apache服务。
IfDefine容器
IfDefine容器封装的指令仅在启动Apache时测试条件为真才会被处理,测试条件需要在启动Apache时通过httpd -D定义。语法格式为<IfDefine>指令</IfDefine>。具体案例如下:
<IfDefine MemCache>
LoadModule mem_cache_module modules/mod_mem_cache.so
</IfDefine>
<IfDefine UseCache>
LoadModule cache_module modules/mod_ cache.so
</IfDefine>
这样的配置可以让管理员采用多种配置方式启动Apache,启动Apache时如果使用了httpd -DuseCache -DMemCache,则Apache将加载mod_mem_cache与mod_cache模块,如果没有使用-D指定任何参数,则Apache将不加载这些模块。
IfModule容器
使用IfModule容器可以封装仅在条件满足时才会处理的指令,根据指定的模块是否加载决定条件是否满足,语法格式<IfModule [!] 模块>指令</IfModule>。具体案例如下:
<IfModule unixd_module>
User daemon
Group daemon
</IfModule>
以上配置说明,仅在Apache加载了unixd_module模块后User daemon与Group daemon才会被Apache处理。
Directory容器
该容器内的指令仅应用于特定的文件系统目录、子目录以及目录下的内容,语法格式为<Directory directory-path>指令</Directory>。路径可以使用~匹配正则表达式。具体案例如下:
<Directory “/usr/local/apche2/htdocs”>
Options Indexs FollowSymLinks
</Directory>
<Directory ~ “^/www/[0-9]{3}”>
AllowOverride None
</Directory>
以上案例中Opions Index FollowSymLins仅对/usr/local/apache2/htdocs目录有效,AllowOverride None仅对所有/www目录下包含三个数字的子目录有效。
<DirectoryMatch>
DirectoryMatch类似于Directory,但可以直接使用正则表达式匹配,而无需像Directory一样使用~符号才可以匹配。
Files容器
该容器类似于Directory容器,但Files容器内的指令仅应用于特定的文件,语法格式如下:<Files 文件名>指令</File>,与Directory类似可以使用~匹配正则表达式。
FilesMatch容器
仅使用正则表达式匹配需要的文件,容器内的指令仅应用于匹配成功的特定文件。FilesMatch等同于使用了~符号的Files。
Location容器
Location容器内定义的指令仅对特定的URL有效,语法格式为<Location URL-path|URL>指令</Location>,如果需要使用正则表达式匹配URL可以使用~符号。
LocationMathch容器
LocationMatch仅使用正则表达式匹配URL,等同于使用了~符号匹配的Location。
VirtualHost容器

虚拟机配置

<VirtualHost *:80> 

    ServerAdmin Jacob_test@gmail.com 

    DocumentRoot "/usr/local/apache2/htdocs/example" 

    ServerName www.example.com 

    ServerAlias web.example.com 

ErrorLog "logs/www.example.com-error_log" 

CustomLog "logs/www.example.com-access_log" common 

</VirtualHost> 

<VirtualHost *:80> 

    ServerAdmin Jacob_test@gmail.com 

    DocumentRoot "/usr/local/apache2/htdocs/test" 

    ServerName www.test.com 

    ErrorLog "logs/test. com-error_log" 

    CustomLog "logs/test.com-access_log" common 

</VirtualHost> 












本文转自super李导51CTO博客,原文链接:http://blog.51cto.com/superleedo/1890050 ,如需转载请自行联系原作者



相关文章
|
1月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
73 3
|
1月前
|
存储 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
40 1
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(一)
|
27天前
|
消息中间件 存储 负载均衡
Apache Kafka核心概念解析:生产者、消费者与Broker
【10月更文挑战第24天】在数字化转型的大潮中,数据的实时处理能力成为了企业竞争力的重要组成部分。Apache Kafka 作为一款高性能的消息队列系统,在这一领域占据了重要地位。通过使用 Kafka,企业可以构建出高效的数据管道,实现数据的快速传输和处理。今天,我将从个人的角度出发,深入解析 Kafka 的三大核心组件——生产者、消费者与 Broker,希望能够帮助大家建立起对 Kafka 内部机制的基本理解。
56 2
|
29天前
|
域名解析 存储 缓存
DNS是什么?内网电脑需要配置吗?
【10月更文挑战第22天】DNS是什么?内网电脑需要配置吗?
108 1
|
1月前
|
缓存 前端开发 应用服务中间件
CORS跨域+Nginx配置、Apache配置
CORS跨域+Nginx配置、Apache配置
158 7
|
1月前
|
机器学习/深度学习 调度
mmseg配置解析 Polynomial Decay 多项式衰减
Polynomial Decay(多项式衰减)是一种常用的学习率调度方法,通过多项式函数逐步减少学习率,帮助模型更好地收敛。公式为:\[ lr = (lr_{initial} - \eta_{min}) \times \left(1 - \frac{current\_iter}{max\_iters}\right)^{power} + \eta_{min} \]。参数包括初始学习率、最小学习率、当前迭代次数、总迭代次数和衰减指数。适用于需要平滑降低学习率的场景,特别在训练后期微调模型参数。
65 0
mmseg配置解析 Polynomial Decay 多项式衰减
|
1月前
|
网络协议 Docker 容器
docker中的DNS配置
【10月更文挑战第5天】
335 1
|
1月前
|
消息中间件 分布式计算 druid
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
大数据-152 Apache Druid 集群模式 配置启动【下篇】 超详细!(二)
41 2
|
1月前
|
存储 搜索推荐 数据库
运用LangChain赋能企业规章制度制定:深入解析Retrieval-Augmented Generation(RAG)技术如何革新内部管理文件起草流程,实现高效合规与个性化定制的完美结合——实战指南与代码示例全面呈现
【10月更文挑战第3天】构建公司规章制度时,需融合业务实际与管理理论,制定合规且促发展的规则体系。尤其在数字化转型背景下,利用LangChain框架中的RAG技术,可提升规章制定效率与质量。通过Chroma向量数据库存储规章制度文本,并使用OpenAI Embeddings处理文本向量化,将现有文档转换后插入数据库。基于此,构建RAG生成器,根据输入问题检索信息并生成规章制度草案,加快更新速度并确保内容准确,灵活应对法律与业务变化,提高管理效率。此方法结合了先进的人工智能技术,展现了未来规章制度制定的新方向。
36 3
|
1月前
|
弹性计算 网络协议 Ubuntu
如何在阿里云国际版Linux云服务器中自定义配置DNS
如何在阿里云国际版Linux云服务器中自定义配置DNS

推荐镜像

更多
下一篇
无影云桌面