余晖落尽暮晚霞,黄昏迟暮远山寻
本站
当前位置:网站首页 > 编程知识 > 正文

Apache服务配置详细讲解

xiyangw 2023-09-27 17:51 14 浏览 0 评论

Apahce 配置指令可以分为两大块,核心指令和第三方提供的指令。在apache中,每一个指令都对应着一个模块,而在所有模块中,最重要的就是core_module,so_module,http_module,以及mpm模块,他们除了so_moudle以外的其他模块都不可以关掉或者禁止.一:httpd.conf

(1) 主服务器部分

1 、ServerName: 定义apache默认主机名,可以是域名或者IP地址

2 、ServerRoot: 用于定义服务器所在的目录,这个路径通常是在配置时候由--prefix来指定的

3 、DocumentRoot: 用于指定apache提供页面服务的根目录,这个路径必须是绝对路径而不是相对路径,如果有空格还需要用引号括起来

4 、ServerAdmin: 服务器出错后给管理员发邮件的地址

5 、ServerAlias 和 Alias: 都用于映射目录,只是ServerAlias将映射的目录识别为CGI脚本目录,并将此目录所有文件都作为CGI脚本对待。但是Alias只是映射为一个普通的目录

6 、User 和 Group: 用于定义用于运行apache 子进程的用户和用户组

7 、Listen: 用来定义监听apache的端口号

8 、LoadModule 指令:用于加载模块或者目标文件 LoadModule cgi_module modules/mod_cgi.so_module

9、 ErrorDocument: 自义错误页面信息 ErrorDocument 500 "unknown error" ErrorDocument 404 "/var/server/www/cgi-bin/missing_404.pl" ErrorDocument 402 http://www.nicky.com/error_402.html

10、 options : 决定在哪些目录中使用那些特性,这些特性如下:

None: option 指令将不会起作用

ExecCGI: 允许当前目录下执行CGI脚本

Includes: 允许使用SSI功能

IncludesNOEXEC: 允许使用SSI功能,但是exec cgi and exec cmd 功能禁用

Indexes: 开起索引功能,比如一个请求到目录URLz中没有有DirectoryIndex 指令指定的索引文件,那么服务器会自动返回一个请求目录内容列表

FollowSymLinks: 允许在当前环境使用符号连接,但是在Location 容器中会被忽略

All: 使用除MultiViews之外的所有特性,也是options的默认参数

MultiViews: 用于启动mod_negotiations模块提供的多重视图功能

11 、ServerTokens: OS/Major/Full 影响报错页脚信息的详细程度,一般不建议使用

(2) 容器部分

1 、<IfModule> 容器:容器作用于模块,他会首先判断模块是否载入,然后再决定是否进行处理,即只有当判断结果为真时,才会执行容器内的指令,相反如果为假,则会全部忽略,可以使用<IfModule 模块名>或者<IfModule !模块名> 来判断模块是否载入

<IfModule mpm_netware_module>

DirctoryIndex index.html

</IfModule>

如果载入则执行

<IfModule !mpm_netware_module>

DirctoryIndex index.html

</IfModule>

如果不载入则执行

2 <IfDefine> 容器:封装一组条件为真时才生效的指令,作用于 server config, virtual host, directory, .htaccess ,和IfModule区别在于,他是以模块是否加载作为判断,但是IfDefine是以条件为判断

依据

<IfDefine Proxy>

LoadModule proxy_module modules/libproxy.so

</IfDefine>

3 <Directory> <DirectoryMatch> 容器:

Directory: 让它封装的指令在它的指定的目录或者他的子目录起作用,这个目录必须是一个完整的路径,当然你也可以使用通配符* ?匹配目录,也考虑利用使用[]来确定字符范围,不过不论是哪一种都不能匹配/

<Directory /var/apache/html>

Order Deny,Allow

Deny from all

</Directory>

上述例子禁止了对/var/apache/html目录的访问权限。任何请求到/var/apache/html都会被拒绝

如果希望目录使用正则表达式,那么需要在前面加一个~

<Directory ~ "^/var/apache[0-9]{2}/html">

Order Deny,Allow

Allow from all

</Directory>

DirectoryMatch: 和Directory作用类似,只不过他可以直接接受正则匹配 而不需要加一个~符号

<DirectoryMatch "^/var/apache[0-9]{2}/html">

Order Deny,Allow

Allow from all

</DirectoryMatch>

4 <Files> 和 <FilesMatch>

Files: 只作用于文件,也可以使用通配符和[]以及在正则表达式前面~来使用正则表达式

<Files "^\.css">

Order Deny,Allow

Allow from All

</Files>

FilesMatch: Files 而不需要加一个~符号

<FilesMatch "\.(gif|jpe?g|png)$">

Order Deny,Allow

Allow from All

</FilesMatch>

5 <Location> 和 <LocationMatch>: 只是对URL进行访问控制

<Location /cgi>

Order Allow,Deny

Deny from All

</Location>

如果以cgi开头URL则会被拒绝

另外还可以将URL 请求映射到Apache模块处理器上,例如使用mod_status模块:

<Location /server-status>

SetHandler server-status

</Location>

如果使用上面的配置。那么访问/server-status,apache会将连接交给mod_status模块处理,并返回一个Apache服务器运行状态页面

容器的处理顺序问题

Apache 会优先处理Directory 容器(但是不会处理带有正则表达式的Directory和.htaccess,)接着处理Files 和 FilesMatch 容器,再接着就是处理Location 和LocationMatch容器

<Location /var/apache/html>

Order deny,allow

Allow from All

</Location>

<Direcotry /var/apache/html>

Order allow,deny

Allow from All

Deny from www.jons.com

</Direcotry>

上述例子,由于Apache会先处理<Directory>容器,最后处理的<Location>容器会覆盖之前Directory配置,因此对于www.json.com将是允许被用户访问的,如果容器相同则按照字典顺序由短到长来处理。

相关推荐

华为交换机配置命令总结

1、配置文件相关命令[Quidway]displaycurrent-configuration显示当前生效的配置[Quidway]displaysaved-configuration显示fla...

解决账户无法登录的故障
解决账户无法登录的故障

在优化系统时错误地根据网上的提示,将唯一的Administrator账户设置为禁用,导致重启后无法进入系统。类似的故障还有使用组策略限制本地账户登录,导致重启后...

2023-10-11 17:16 xiyangw

S5720交换机登录提示初始密码存在安全风险
S5720交换机登录提示初始密码存在安全风险

问题描述客户每次登录输密码时,提示初始密码不安全,现在客户嫌麻烦想要去掉:Username:huaweiPassword:Warning:Theinitia...

2023-10-11 17:15 xiyangw

Springboot,Mybatis修改登录用户的密码
Springboot,Mybatis修改登录用户的密码

一、Mybatis.xml<updateid="changePassword"parameterType="string...

2023-10-11 17:15 xiyangw

PHP理论知识之沐浴更衣重看PHP基础(二)
PHP理论知识之沐浴更衣重看PHP基础(二)

接上篇,咱们继续讲解PHP基础八、标准PHP组件和框架的数量很多,随之产生的问题就是:单独开发的框架没有考虑到与其他框架的通信。这样对开发者和框架本身都是不利的...

2023-10-11 17:15 xiyangw

新鲜出炉UCloud云主机“数据方舟”评测报告(5)— — 关其城
新鲜出炉UCloud云主机“数据方舟”评测报告(5)— — 关其城

2015年10月29日,UCloud云主机黑科技——“数据方舟”功能正式上线,首轮内测随即开放。截止至2015年12月6日,我们共收到了534位用户的评测申...

2023-10-11 17:14 xiyangw

业余无线电Q简语及英文缩语
业余无线电Q简语及英文缩语

Q简语:语音通信及CW通信通用(加粗为常用)QRA电台何台QRB电台间之距离QRG告之正确频率QRH频率是否变动QRI发送音调QRJ能否收到QRK信号之可...

2023-10-11 17:14 xiyangw

非常详细!如何理解表格存储的多版本、生命周期和有效版本偏差
非常详细!如何理解表格存储的多版本、生命周期和有效版本偏差

表格存储在8月份推出了容量型实例,直接支持了表级别最大版本号和生命周期,高性能实例也将会在9月中旬支持这两个特性。那么,最大版本号和生命周期以及特有的...

2023-10-11 17:14 xiyangw

H3C交换机恢复出厂和各种基本配置,这20个要点你知道吗?
H3C交换机恢复出厂和各种基本配置,这20个要点你知道吗?

私信“干货”二字,即可领取138G伺服与机器人专属及电控资料!H3C交换机不知道密码如何恢复出厂设置1、开机启动,Ctrl+B进入bootrom菜单,选择恢复出...

2023-10-11 17:13 xiyangw

在使用移动支付系统的时候如何保护信息安全?

移动支付的方式近年来不断被更新,使得Venmo(据嘉丰瑞德理财师了解,此为美国的“支付宝”)之类的支付方式已经可以某种意义上代替随身携带现金了。但是你必须防范那些第三方应用程序轻松地获取你的银行卡以及...

界面控件DevExpress WinForms MVVM入门指南——登录表单(下)

从本文档中,您将了解如何向应用程序添加登录表单。在本节教程中着重讨论了如何实现此任务,这基本上是附加应用程序功能的一部分。DevExpressUniversalSubscription官方最新版免...

linux基础命令(一)
linux基础命令(一)

为啥要学linux?您可能熟悉WindowsXP、Windows7、Windows10和MacOSX等操作系统。Linux就是这样一种强大的操...

2023-10-11 17:13 xiyangw

MySQL数据库密码忘记了,怎么办?

#头条创作挑战赛#MySQL数据库密码忘记了且没有其他可以修改账号密码的账户时怎么办呢?登录MySQL,密码输入错误/*密码错误,报如下错误*/[root@TESTDB~]#mysql-u...

MobaXterm忘记Session密码,如何查看已保存的密码
MobaXterm忘记Session密码,如何查看已保存的密码

MobaXterm工具登录过SSH终端后,如果存储了Session(存储后再连接ssh的时候只需要输入账号不需要输入密码就可以直接连接上ssh),则可以...

2023-10-11 17:12 xiyangw

华为交换机密码丢失修改方法
华为交换机密码丢失修改方法

华为S2300交换机找回密码设置一、目的交换机的console和telnet密码丢失,无法登录设备。交换机已进行过数据配置,要把密码恢复而数据配置不能丢失。二、...

2023-10-11 17:12 xiyangw

取消回复欢迎 发表评论: