Web服务器 - Apache配置介绍

基本语法

常量的定义与使用,使用关键词 Define 可以定义常量,使用 ${} 插入常量,如下

语法规则说明示列
Define定义常量Define SRVROOT “D:/srv/Apache24”
${}使用常量ServerRoot “${SRVROOT}”
/表示路径时使用 / 而不使用 \D:/srv/Apache24

基本配置

配置参数配置说明示列
ServerRootApache运行目录ServerRoot “D:/Apache24”
Listen监听端口Listen 80
LoadModule加载模块LoadModule 模块名 模块文件
ServerAdmin管理员的邮箱,服务器出现问题时,会在页面中显示ServerAdmin admin@example.com
ServerName服务器解析域名ServerName www.example.com
ServerAlias域名别名,配置多域名解析时使用ServerName api.example.com
DocumentRoot网站根目录DocumentRoot “${SRVROOT}/htdocs”
DirectoryIndex网站自动执行文件,默认文件DirectoryIndex index.php index.html
ErrorLog错误日志ErrorLog “logs/error.log”
CustomLog设定日志的文件名和格式CustomLog “logs/access.log” common
LogLevel错误提示等级LogLevel warn
Include包含其他的配置文件,支持通配符 *Include conf/vhosts/*.conf
Alias使客户端可以访问到DocumentRoot以外的本地文件Alias /myphoto “E:/照片”
ScriptAlias映射一个URL到文件系统并视之为CGI脚本目录ScriptAlias /cgi-bin/ “D:/wamp/bin/Apache2.4.23/cgi-bin”
DefaultType当服务器无法确定一个文档的内容类型时发送的默认MIME内容类型DefaultType text/plain
AddType为特定后缀的文件指定MIME类型,这里的设置将覆盖mime.types中的设置AddType application/x-httpd-php .php .html .htm (前导点可带可不带)
ErrorDocument当遇到错误的时候服务器将给客户端什么样的应答。 语法:ErrorDocument error-code document 其中error-code时服务器返回的错误代码,document是回应的数据,可以是简单的文本,本地网页,本地CGI程序,或远程主机上的网页ErrorDocument 500 “The server made a boo boo.”
EnableMMAPhttpd在递送中如果需要读取一个文件的内容,是否可以使用内存映射
EnableSendfile控制httpd是否可以使用操作系统内核的sendfile支持来将文件发送到户端EnableSendfile Off

容器设置

所有的容器都是成对出现的,和html的标签一样

< IfModule >容器

封装一组指令,并根据指定的模块是否启用决定是否进行处理

使用 <IfModule 模块名> 或 <IfModule !模块名> 判断模块是否载入

<IfModule module_name>
	当模块module_name加载时
	执行里面的内容
</IfModule>

<IfModule !module_name>
	当模块module_name没有加载时
	执行里面的内容
</IfModule>
< IfDefine >容器

封装一组指令,只有在启动时启动参数测试结果为真时才生效

<IfDefine parameter-name> 或 <IfDefine !parameter-name>
parameter-name是在服务启动时,通过httpd命令行的 -D parameter 这样的形式指定的,
例如 httpd -D Proxy

使用方式与<IfModule>一致
< Directory > 与 < DirectoryMatch > 容器

封装一组指令,在指定的目录以及其子目录中生效,这个目录必需时一个完整的目录

使用通配符 “"、"?" 匹配目录,也可以使用 “[]” 来确定字符范围,不过无论是"”、"?" , 还是 “[]” 都不能匹配 “/”

<Directory /srv/apache*/>
    AllowOverride none
    Require all denied
</Directory>

也可以在表达式前使用"~"表示使用正则表达式

<Directory  ~"^/srv/apache[0-9]{2}/">
    AllowOverride none
    Require all denied
</Directory>

< DirectoryMatch >的使用方式与与< Directory >一致,区别时可以直接接受正则表达式,而无须加上"~"

< Files > 与 < FilesMatch > 容器

与< Directory >容器作用于目录相对应,< Files >容器只作用于文件,使用方法一致

<Files ~"^\.html">
	Order Deny,Allow
	Allow from All
</Files>
< Location >与< LocationMatch >容器

对URL进行访问控制;使用方法与上述几个容器一致。

指令设置

Options:控制在特定目录中将使用哪些服务器特性
参数说明
Indexes若访问目录下无index文件,则准许显示该目录下的文件列表以供选择。
FollowSymLinks准许在目录中使用符号链接到其他目录。
MultiViews准许内容协商的“多重视图”。如果客户端请求的路径可能对应多种类型的文件,服务器将根据客户端请求的具体情况自动选择一个最匹配客户端要求的文件。例如只在地址栏输入index也可以访问到index.php页面。
Includes准许SSI。
IncludesNOEXEC准许SSI,但不可使用exec和include功能。
ExecCGI准许在该目录下使用CGI。
All表示除了MultiViews之外的所有特性。
None表示不启用任何的服务器特性。

注意:如果一个目录被多次设置了options,则最特殊的一个会被完全接受。

AllowOverrid:是否准许文件“.htaccess”中设定的权限覆盖文件中设定的权限
参数说明
All准许覆盖
None不准许覆盖
AuthConfig允许使用与认证授权相关的指令。
FileInfo允许使用控制文档类型的指令、控制文档元数据的指令、mod_rewrite中的指令、mod_actions中的Action指令。
Indexs允许使用控制目录索引的指令。
Limit允许使用控制主机访问的指令。
控制访问状态

apache2.2 和 apache2.4 的配置方式不一样,2.2使用order+allow/deny,2.4使用Require语句来配置

apache2.2

Order:控制默认的访问状态和allow、deny指令生效的顺序

参数说明
allow允许访问。
deny拒绝访问。

这两个参数由最后一个出现的参数决定,如“Order allow,deny”默认拒绝了所有的意思(中间有且只有一个逗号),但最终的判断结果还要总下面的allow、deny语句中各自所包含的范围(如果有的话),这两个语句后面都一定接着“from”,否则Apache会无法启动。“Order allow,deny”表示先判断allow语句再判断deny语句。

# 拒绝所有请求
Order deny,allow
deny from all

# 允许所有请求
Order  allow,deny
allow  from all

# 只允许某个特定IP的访问
Order  deny,allow
deny  from  all
allow  xxx.xxx.xxx.xxx
apache2.4
# 拒绝所有请求
Require  all  denied

# 允许所有请求
Require  all  granted

# 只允许某个特定IP的访问
Require  host  xxx.xxx.xxx.xxx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值