Web服务器 - Apache配置介绍
基本语法
常量的定义与使用,使用关键词 Define 可以定义常量,使用 ${} 插入常量,如下
语法规则 | 说明 | 示列 |
---|---|---|
Define | 定义常量 | Define SRVROOT “D:/srv/Apache24” |
${} | 使用常量 | ServerRoot “${SRVROOT}” |
/ | 表示路径时使用 / 而不使用 \ | D:/srv/Apache24 |
基本配置
配置参数 | 配置说明 | 示列 |
---|---|---|
ServerRoot | Apache运行目录 | 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.” |
EnableMMAP | httpd在递送中如果需要读取一个文件的内容,是否可以使用内存映射 | |
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 noneRequire all denied
</Directory>
也可以在表达式前使用"~"表示使用正则表达式
<Directory ~"^/srv/apache[0-9]{2}/">AllowOverride noneRequire all denied
</Directory>
< DirectoryMatch >的使用方式与与< Directory >一致,区别时可以直接接受正则表达式,而无须加上"~"
< Files > 与 < FilesMatch > 容器
与< Directory >容器作用于目录相对应,< Files >容器只作用于文件,使用方法一致
<Files ~"^\.html">Order Deny,AllowAllow 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
Web服务器 - Apache配置介绍相关推荐
- Web服务器 - Nginx配置介绍
nginx的配置相对简单,总体来说分为5种模块 全局块:配置影响nginx全局的指令.一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker ...
- http隐藏服务器相关配置信息,apache web服务器安全配置
尽管现在购买的云服务器很多都有一键web环境安装包,但是如果是自己配置web环境则需要对各种安全配置十分了解,今天我们就来尝试这做好web服务器安全配置.这里的配置不尽完善,若有纰漏之处还望指出. 修 ...
- WEB服务器和HTTP服务器和应用服务器的区别?(web服务器就是HTTP服务器)为什么要把Web服务器独立配置,和应用程序服务器一前一后?
参考文章1:WEB服务器.应用程序服务器.HTTP服务器区别 参考文章2:如何区分Web服务器.HTTP服务器.应用程序服务器 WEB服务器.应用程序服务器.HTTP服务器有何区别?IIS.Apach ...
- WEB服务器的基本介绍
WEB服务器的基本介绍 一.Web服务器介绍 二.Web服务器分类 1.IIS 2.Tomcat 3.Zeus 4.Nginx 5.Apache 6.Lighttpd 三.tomcat/nginx/a ...
- WEB服务器和HTTP服务器(http server)和应用服务器的区别?(web服务器就是HTTP服务器)为什么要把Web服务器独立配置,和应用程序服务器一前一后?
参考文章1:WEB服务器.应用程序服务器.HTTP服务器区别 参考文章2:如何区分Web服务器.HTTP服务器.应用程序服务器 WEB服务器.应用程序服务器.HTTP服务器有何区别?IIS.Apach ...
- 25. Linux中的web服务器Apache
Lesson25 Linux中的web服务器Apache 文章目录 1. 什么是Apache服务器 2. 什么是http协议 3. Apache的基础信息 4. 实验环境配置 5. 在desktop虚 ...
- 【Linux】DHCP、FTP、DNS、WEB服务器的配置过程
[Linux]DHCP.FTP.DNS.WEB服务器的配置过程 要求 一.DHCP服务器配置过程 二.FTP服务器配置过程 三.DNS服务器配置过程 四.WEB服务器配置过程 要求 某企业有一个局域网 ...
- 错误摘要 HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容。
错误摘要 HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容. 这问题在网上找了很久,搞了一天都没有弄明白,网上一直都说是权限问题.今天下午鬼使神差的对as ...
- win7配置iis 出现:HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容...
HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容 这几天安装了Windows 7,由于直接从Xp 升级到Windows 7,对于一些设置不是很熟悉,不过总 ...
最新文章
- 如何使用 OpenCV 开发虚拟键盘
- 矩阵连乘算法代码JAVA_矩阵连乘问题的动态规划算法(java)
- Java线程之Synchronized用法
- 【Spring】Spring第三天 - 声明式事务、常用注解、Ajax 复习
- go语言高并发与微服务实战_go-micro+gin+etcd微服务实战之服务注册与发现
- Spring RabbitMQ教程
- 一代经典框架 Layui 落幕,是否预示着一个时代的结束?
- SpringBoot私人学习笔记
- html+jquery翻页相册(原创)
- 拓端tecdat|R语言文本挖掘NASA数据网络分析,tf-idf和主题建模
- 荒野行动为什么不能获取服务器信息,荒野行动获取服务器信息一直不动 服务器信息0解决方法...
- 三目表达式运算符优先级分析
- 营销:uplift模型
- cesium实现场景导出图片功能
- 【微信小程序宝典】从零开始做微信小程序开发
- 如何在安卓手机上面远程桌面操作
- Linux 块设备层中的Multi-queue分析
- 测试管理之--文档管理
- 网易云音乐ubuntu下安装
- TBR:AWS不是云计算领导者,Microsoft才是
热门文章
- AspNetCore在docker部署时遇到一个小坑
- 我做的百度飞桨PaddleOCR .NET调用库
- .NET 程序测试 Java 项目 log4j2 是否存在远程代码执行漏洞
- 关于 Azure SQL 数据库你不知道的 5 件事
- WPF 命中测试HitTest
- NET问答: 如果动态构建 Query 查询 EntityFramework
- EFCore3.1+编写自定义的EF.Functions扩展方法
- 315曝光不良奸商 对企业不能罚酒三杯
- .NET Core 集成JWT认证
- 一个static和面试官扯了一个小时,舌战加强版