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 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

点火开关分为4个档位,分别是off,acc,IG-on,和ST

off全车除了常火&#xff08;如应急灯&#xff0c;时钟等的记忆功能&#xff09;外&#xff0c;均不供电。acc 是附件档&#xff0c;部分车载附属设备供电&#xff0c;如视听系统&#xff0c;仪表灯&#xff0c;灯光等。也就是说&#xff0c;车停在哪里&#xff0c;发动机不转&…

h5的formData 上传文件及.net后台

先来前端的代码&#xff1a; html 代码&#xff1a; <input type"file" id"files" value"" multiple/> js代码&#xff1a; function init() {var ele_files document.querySelector("#files");ele_files.addEventListener(&qu…

51 Nod 1027 大数乘法【Java大数乱搞】

1027 大数乘法 基准时间限制&#xff1a;1 秒 空间限制&#xff1a;131072 KB 分值: 0 难度&#xff1a;基础题 给出2个大整数A,B&#xff0c;计算A*B的结果。Input第1行&#xff1a;大数A 第2行&#xff1a;大数B (A,B的长度 < 1000&#xff0c;A,B > 0&#xff09; Out…

关于ASP.NET Core WebSocket实现集群的思考

前言提到WebSocket相信大家都听说过&#xff0c;它的初衷是为了解决客户端浏览器与服务端进行双向通信&#xff0c;是在单个TCP连接上进行全双工通讯的协议。在没有WebSocket之前只能通过浏览器到服务端的请求应答模式比如轮询&#xff0c;来实现服务端的变更响应到客户端&…

windows环境下Apache+PHP+MySQL搭建服务器

相关文件下载 下载地址Apachehttps://www.apachehaus.com/cgi-bin/download.plxPHPhttps://windows.php.net/downloadMySQLhttps://dev.mysql.com/downloads/mysql/MySQL MySQL配置 当前使用的MySQL版本是8.0.18&#xff0c;在MySQL根目录下新建my.ini文件&#xff0c;下面是…

angular.js国际化模块

最近需要将一个项目转化成英文的&#xff0c; 于是发现一个angular模块angular-translate&#xff0c;实现如下&#xff1a; 1.安装包 bower install angular-translate bower install angular-translate-loader-static-files //然后在页面引用进去 <script src"/angul…

触屏网站如何实现返回并刷新

目的 在会员中心等页面常常会遇到进入内页修改信息&#xff0c;返回前一个页面需要更新信息的场景。 思路 用COOKIE记录当前页面是否需要刷新&#xff0c;返回之后再刷新一次页面。 方案 下载js.cookie.js然后引入到项目中 https://github.com/js-cookie/js-cookie 先来一个最简…

更快,更强的.NET 7 发布了

.NET Conf 2022 在昨晚(11⽉8⽇) 11 点 正式开始了&#xff0c;为期三天的会议&#xff08;11⽉8-10⽇&#xff09;&#xff0c; 围绕 .NET 7 展开。相信各位⼩伙伴都已经开始安装 .NET 7 正式版本还有以及相关的开发⼯具。这次 .NET 7 围绕传统的 C# &#xff0c;ASP.NET Core…

Web服务器 - Nginx配置介绍

nginx的配置相对简单&#xff0c;总体来说分为5种模块 全局块&#xff1a;配置影响nginx全局的指令。一般有运行nginx服务器的用户组&#xff0c;nginx进程pid存放路径&#xff0c;日志存放路径&#xff0c;配置文件引入&#xff0c;允许生成worker process数等。events块&…

jvm(Java virtual machine) JVM架构解释

2019独角兽企业重金招聘Python工程师标准>>> JVM 架构解释 每个Java开发者都知道通过JRE【Java运行环境】执行字节码。 但是很多人都不知道JRE是JVM实现的事实。JVM负责执行字节码的分析 代码的解释和运行。 我们应该了解JVM的架构&#xff0c;这对开发者来说是很重…

Hyper-V 嵌套虚拟化

先决条件运行 Windows Server 2016 或Windows 10 周年更新的 Hyper-V 主机。运行 Windows Server 2016 或Windows 10 周年更新的 Hyper-V VM。配置版本为 8.0 或更高的 Hyper-V VM。采用 VT-x 和 EPT 技术的 Intel 处理器&#xff08;AMD-V技术的暂时不支持&#xff09;>Set…

简单的面试题简解思路(搜集)

1. 统计字符串中单词出现次数 "hi how are you i am fine thank you youtube am am "&#xff0c;统计"you"出现的次数。 方法一 : split() function wordCount(str,word){var str str || "";var word word || "";var strArr s…

WinForm(十五)窗体间通信

在很多WinForm的程序中&#xff0c;会有客户端之间相互通信的需求&#xff0c;或服务端与客户端通信的需求&#xff0c;这时就要用到TCP/IP的功能。在.NET中&#xff0c;主要是通过Socket来完成的&#xff0c;下面的例子是通过一个TcpListerner作为监听&#xff0c;等待TcpClie…

905. 按奇偶排序数组

1// 905. 按奇偶排序数组 2/** 3 * param {number[]} A 4 * return {number[]} 5 */ 6var sortArrayByParity function(A) { 7 return A.filter(value > value % 2 0).concat( 8 A.filter(value > value % 2 1) 9 )10}; 转载于:https://www.cnblogs.com/…

关于Java开发需要注意的十二点流程

1.将一些需要变动的配置写在属性文件中 比如&#xff0c;没有把一些需要并发执行时使用的线程数设置成可在属性文件中配置。那么你的程序无论在DEV环境中&#xff0c;还是TEST环境中&#xff0c;都可以顺畅无阻地运行&#xff0c;但是一旦部署在PROD上&#xff0c;把它作为多线…

Unity经典游戏教程之:雪人兄弟

版权声明&#xff1a; 本文原创发布于博客园"优梦创客"的博客空间&#xff08;网址&#xff1a;http://www.cnblogs.com/raymondking123/&#xff09;以及微信公众号"优梦创客"&#xff08;微信号&#xff1a;unitymaker&#xff09;您可以自由转载&#x…

使用webpack搭建个性化项目

安装主包 yarn add webpack webpack-cli webpack-dev-server -D根据项目实际需求安装loaders&#xff0c;webpack-loaders列表 根据项目实际需求安装插件&#xff0c; webpack-plugins列表 常用包列表 包名说明webpackwebpack主程序&#xff0c;配置列表webpack-cliwebpack…

.NET周报【11月第1期 2022-11-07】

国内文章开源安全赋能 - .NET Conf China 2022https://mp.weixin.qq.com/s/_tYpfPeQgyEGsnR4vVLzHg.NET Conf China 2022 是面向开发人员的社区峰会&#xff0c;延续 .NET Conf 2022 的活动&#xff0c;庆祝 .NET 7 的发布和回顾过去一年来 .NET 在中国的发展成果&#xff0c;它…

React - 状态提升

从入门的角度来聊一下React 的状态提升。我们先来看一下React官网是怎么介绍这一概念的&#xff1a;使用 react 经常会遇到几个组件需要共用状态数据的情况。这种情况下&#xff0c;我们最好将这部分共享的状态提升至他们最近的父组件当中进行管理。很简单的一句介绍&#xff0…

saltstack(三) --- salt-httpapi

以下操作均在master上操作 1. 安装api netapi modules&#xff08;httpapi&#xff09;有三种&#xff0c;分别是rest_cherrypy、rest_tornado、rest_wsig&#xff0c;接下来要讲的是rest_cherrypydoc&#xff1a;https://docs.saltstack.com/en/latest/ref/netapi/all/salt.ne…