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 ...
随机推荐
- 基于tiny4412的Linux内核移植 --- aliases节点解析【转】
转自:https://www.cnblogs.com/pengdonglin137/p/5252348.html 阅读目录(Content) 作者信息 平台简介 正文 回到顶部(go to top) ...
- Mybatis拦截器(六)
拦截器的作用就是我们可以拦截某些方法的调用,在目标方法前后加上我们自己逻辑. Mybatis拦截器设计的一个初衷是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis固有的逻辑. Mybat ...
- Python网络编程基础 ❸ struct模块 基于upd的socket服务
struct模块 基于upd的socket服务
- <BackTracking> permutation 254 47 60
254. Factor Combinations class Solution { public List<List<Integer>> getFactors(int n) { ...
- <String> 186 293 294 249
186. Reverse Words in a String II 先反转整个字符串,再反转每个单词(调整顺序也可以) 反转单词的时候:当 j 指到最后一个字符的时候,或者 j 的下一个指向空格,则反 ...
- 小白专场-FileTransfer-python语言实现
目录 更新.更全的<数据结构与算法>的更新网站,更有python.go.人工智能教学等着你:https://www.cnblogs.com/nickchen121/p/11407287.h ...
- C# 位运算基本大全
1.原码 反码 补码 只用补码进行计算,且没有减法.只有用补码进行加法运算,具体原因,详见:http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/C ...
- mybatis报错:Invalid bound statement (not found)
mybatis报错:Invalid bound statement (not found)的原因很多,但是正如报错提示一样,找不到xml中的sql语句,报错的情况分为三种: 第一种:语法错误 Java ...
- vuex 源码解析(四) mutation 详解
mutation是更改Vuex的store中的状态的唯一方法,mutation类似于事件注册,每个mutation都可以带两个参数,如下: state ;当前命名空间对应的state payload ...
- 1.go语言入门
1.Go语言中文网,选择相应版本(32位或64位)下载 https://studygolang.com/dl, 2.解压到一个任意文件夹 3.配置环境变量 cmd命令行输入go version查看当前 ...