apache配置项
环境:apache2.24
apache 官方文档:http://httpd.apache.org/docs/2.4/
全部指令索引: http://httpd.apache.org/docs/2.4/mod/quickreference.html
一、配置文件语法
1. 注释:注释以#开头,且注释与指令不能在同一行
2. 指令:指令名不区分大小写,指令参数区分大小写,指令参数以空格分隔,参数中有空格则引号包裹。‘\’表示指令继续到下一行
3. 变量:${var},var中不能包含‘:’
二、模块
httpd是模块化服务器。这意味着核心服务器中仅包含最基本的功能。可通过可加载到httpd中的模块获得扩展功能
LoadModule 加载模块(可动态加载的模块)
<IfModule modulename> </IfModelu> 加载其它模块(如php_apache)
三、指令范围
直接在主配置文件中的指令是全局配置,若想指定生效范围,则应用范围指令包含
<Directory /usr/local/htdocs></Directory> 指令在该目录下生效
<VirtualHost addr[:port] [addr[:port]] ...> ... </VirtualHost> 虚拟主机配置,配置只生效于指定主机或IP的指令
<Location URL-path|URL> ... </Location> 路由配置(普通匹配)
<LocationMatch regex> ... </LocationMatch> 匹配符合正则表达式的URL
<Files index.php></Files>
<FilesMatch \.php$> </FilesMatcch> 文件名按正则匹配,符合要求则里面指令生效
四、条件指令
<IfDefine 条件> </IfDifine> 条件为真则执行指令中内容,作用域:serverconfig,virtualhost,directory,.htaccess
<IfDirective [!]directive-name> ... </IfDirective> 某指令存在,则执行其中内容
<IfFile [!]filename> ... </IfFile> 如果文件存在,则执行
<IfModule [!]module-file|module-identifier> ... </IfModule> 模块[不]存在则执行
<IfSection [!]section-name> ... </IfSection> section-name为directory,.htaccess,virtualhost..
<If expression> ... </If> 条件为真,则生效
<LimitExcept method [method] ... > ... </LimitExcept> 限制非指定请求方法的操作
五、常用全局设置指令
Listen [addr:]80 监听端口
Define SRVROOT "F:\www\apache\Apache2.4.41" 定义全局变量
ServerAdmin 用户名@mail地址 apache服务管理员
ServerRoot /usr/local/apache 服务安装地址
AccessFileName 设置分布式配置文件文件名,如.htaccess
AllowOverride All | None | [define rewirte] 设置.htaccess文件中哪些指令能用,None全不可用。
ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full 配置HTTP服务响应头
选项:ServerTokens Full Server: Apache/2.4.2 (Unix) PHP/4.2.2 MyMod/1.2
ServerTokens Prod Server: Apache
ServerTokens Major Server: Apache/2
RegexDefaultOptions DOTALL DOLLAR_ENDONLY 正则表达式设置
选项:ICASE 不区分大小写
EXTENDED 忽略未转义的空格和模式中的注释
DOTALL 匹配换行字符
DOLLAR_ENDONLY
六、加载指令
LoadModule 加载模块(可动态加载的模块)
Include filename 包含其他配置文件
五、请求相关指令
KeepAlive On|Off 是否启用持久连接
KeepAliveTimeout num[ms] 连接超时,默认单位秒,ms毫秒
TimeOut 60 客户端HTTP请求发送超时
LimitRequestBody bytes 限制客户端发送请求体的大小
LimitRequestFieldSize bytes 限制请求头的大小,最大值12392,默认8190,限制异常请求,减少攻击
LimitRequestLine bytes 限制客户端接收请求行大小,即URL大小,默认8190
LimitRequestFields number 限制一次请求中,请求头字段的最大数量,默认100
MaxKeepAliveRequests 100 一次持久连接中支持的最大请求数,默认100
LimitInternalRecursion 10 限定一次请求中,重定向和嵌套子请求的个数。防止无限请求,服务器崩溃
六、日志设置相关指令
ErrorLog logs/error_log 错误日志存放位置
ErrorLogFormat string 错误日志格式
LogLevel warn [module:level] 设置错误日志等级 :emerge alert crit error warn notice info debug 依次降低,也可只设置针对某个模块的日志
八、协议相关设置指令
Protocol https 监听套接字的协议,作用域:server config, virtual host。80端口默认http,443端口默认https。其它协议可指定
Protocols http/1.1 h2 指定服务器和虚拟主机支持的协议
ProtocolsHonorOrder On|Off 协议优先级是否以protocols列出的为准
九、虚拟主机设置相关指令
ServerAlias www.aaa.com 设置虚拟主机别名
ServerName localhost:80 虚拟主机名
DocumentRoot 站点根目录
<Directory /usr/local/htdocs></Directory> 站点内目录设置
Options [+|-]option [[+|-]option] 控制在特定目录中哪些服务器特性可用。作用域 server config, virtual host, directory, .htaccess
选项:在选项前加上[+/-]则可覆盖前面该项的设置
All 都可用
ExecCGI 运行执行CGI脚本
Indexes 访问目录没有主页,则以目录显示
FollowSymLinks 默认设置,允许你的网页文件夹下的链接文件链接到首页目录以外的文件
Includes
Require all granted 设置经过验证的用户是否得到授权。相应的授权模块mod_authnz_ldap
, mod_authz_dbm
, mod_authz_dbd
, mod_authz_owner
and mod_ssl
.
选项: all denied 无条件拒绝
all granted 无条件允许
env env-var
环境变量已设置则允许访问
method http-method
指定的请求方法才能访问
expr expression 表达式为真允许访问
user userid
指定用户才能访问资源
ip 10 172.20 192.168.2
指定IP范围的客户端可以访问
<RequireAll> ... </RequireAll>
包含多个授权指令,满足所有条件则授权
<RequireAny> ... </RequireAny>
其中有一个成功,则授权
<RequireNone> ... </RequireNone>
所有授权指令都不成功,则授权
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php #访问站点根目录apache提供的文件,站点首页。作用域server config, virtual host, directory, .htaccess
</IfModule>
十、其它指令
SetInputFilter filter[;filter...] 设置输入过滤器
SetOutputFilter filter[;filter...] 设置输出过滤器
Define parameter-name [parameter-value] 设置参数
AddType application/x-httpd-php .php 设置模块解析.php文件
MIMEMagicFile conf/magic
MaxRanges unlimited
apache配置项的更多相关文章
- windows下配置lamp环境(2)---配置Apache服务器2.2.25
配置Apache 配置Apache时,先要找到安装目录中的主配置文httpd.conf,使用文本编辑器打开,最好不要使用windows自带的编辑器,可以使用NotePad++, vim,或者subli ...
- 转--Server “**” has shut down the connection prematurely一例分析
近几天在性能测试过程中,发现loadrunner Controller经常报 Server “**” has shut down the connection prematurely .概率很高,现象 ...
- PHP备忘录
file_exists()在判断文件是否存在的时候是递归判断每个目录是不是有执行权限. Echo输出大字符串速度慢:打开apache配置项‘deflate’进行压缩输出.
- centos7上搭建http服务器以及设置目录访问
参考文献:http://www.jb51.net/article/137596.htm,原文摘抄如下,并根据具体需要作了相应的修改. 步骤: 1. 安装httpd服务 sudo yum install ...
- nginx中try_files
location / { try_files $uri $uri/ /index.php?$query_string; } 当用户请求 http://localhost/example 时,这里的 $ ...
- Apache2.4和IIS7整合共享80端口测试
言我再重新排版一下 在C:\Windows\System32\drivers\etc\hosts文件中配置2个测试域名用于整合测试 127.0.0.1 www.aaa.com // apache项目 ...
- window下lamp环境搭建
软件: apache_2.2.25.msi php-5.4.30-Win32-VC9-x86.zip mysql-5.6.11-win32.msi下载地址:http://download.csdn.n ...
- Apache常用配置项
301是永久重定向 302是临时重定向 编辑虚拟主机的配置文件需要用到apache的rewrite模块 所以要用要先检查apache是否安装了rewrite模块 # ./bin/apachectl - ...
- apache 的 配置项
一.主服务器部分 1.ServerName 指令 定义Apache默认主机名,(默认注释掉的),后面跟站点名,或是IP 例如:ServerName www.jone.com 或者 ServerNam ...
随机推荐
- luoguP1040 加分二叉树
在做各类DP的时候都要思路清晰! #include<cstdio> #include<algorithm> using namespace std; const int N = ...
- Pwnable-fd
打开Ubuntu输入ssh fd@pwnable.kr -p2222,连接之后输入密码guest 之后就是ls -l看看里面的文件和权限,fd.fd.c.flag 看看fd.c的源码 #include ...
- Vue 中的 子组件 给 父组件 传值
子组件的某一个事件(sendData)内部,通过this.$emit('事件名', 传递的值)传递数据父组件在调用子组件的地方,绑定了子组件自定义的 事件名(change-data) 定义父组件的地方 ...
- linux常用终端命令
01. 终端命令格式 command [-options] [parameter] 说明: command:命令名,相应功能的英文单词或单词的缩写 [-options]:选项,可用来对命令进行控制,也 ...
- <String> 179 ,6, 168
179. Largest Number 冒泡排序,每一轮都把最小的数字选出放在最后. class Solution { public String largestNumber(int[] nums) ...
- 正睿暑期培训day4考试
链接 A 求出来到每座山的距离后,就可以计算出每只猫等待的时间与出发时间的关系. 如果出发时间为\(x\),求出来只猫的等待时间.这里用\(b_i\)表示第i只猫的等待时间.然后我们将这些时间排序.问 ...
- AtCoder Grand Contest 037
Preface 这篇咕了可能快一个月了吧,正好今天晚上不想做题就来补博客 现在还不去复习初赛我感觉我还是挺刚的(微笑) A - Dividing a String 考虑最好情况把每个字符串当作一个来看 ...
- k8s web终端连接工具
k8 web terminal 一个k8s web终端连接工具,在前后端分离或未分离项目中心中,也可以把此项目无缝集成,开箱即用. 项目地址:https://github.com/jcops/k8-w ...
- oracle简单查询单词
单词 释义 select 查询 from 从... where 条件查询 as 别名 not 取反 and 和 or 或者 between...and... 范围取值,包含边界 like 模糊查询 e ...
- elementui树表修改子节点不能实时更新的解决办法
在使用ElementUI提供的树表(el-table)的时候发现,如果手动通过JS修改了某个节点的children中的一条记录(子节点)的话,并不会自动刷新. 简单分析了一下,原因大概是因为VUE的数 ...