环境: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配置项的更多相关文章

  1. windows下配置lamp环境(2)---配置Apache服务器2.2.25

    配置Apache 配置Apache时,先要找到安装目录中的主配置文httpd.conf,使用文本编辑器打开,最好不要使用windows自带的编辑器,可以使用NotePad++, vim,或者subli ...

  2. 转--Server “**” has shut down the connection prematurely一例分析

    近几天在性能测试过程中,发现loadrunner Controller经常报 Server “**” has shut down the connection prematurely .概率很高,现象 ...

  3. PHP备忘录

    file_exists()在判断文件是否存在的时候是递归判断每个目录是不是有执行权限. Echo输出大字符串速度慢:打开apache配置项‘deflate’进行压缩输出.

  4. centos7上搭建http服务器以及设置目录访问

    参考文献:http://www.jb51.net/article/137596.htm,原文摘抄如下,并根据具体需要作了相应的修改. 步骤: 1. 安装httpd服务 sudo yum install ...

  5. nginx中try_files

    location / { try_files $uri $uri/ /index.php?$query_string; } 当用户请求 http://localhost/example 时,这里的 $ ...

  6. Apache2.4和IIS7整合共享80端口测试

    言我再重新排版一下 在C:\Windows\System32\drivers\etc\hosts文件中配置2个测试域名用于整合测试 127.0.0.1 www.aaa.com // apache项目 ...

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

  8. Apache常用配置项

    301是永久重定向 302是临时重定向 编辑虚拟主机的配置文件需要用到apache的rewrite模块 所以要用要先检查apache是否安装了rewrite模块 # ./bin/apachectl - ...

  9. apache 的 配置项

    一.主服务器部分 1.ServerName 指令 定义Apache默认主机名,(默认注释掉的),后面跟站点名,或是IP 例如:ServerName www.jone.com  或者 ServerNam ...

随机推荐

  1. CodeForces-1253B(贪心+模拟)

    题意 https://vjudge.net/problem/CodeForces-1253B 把一个序列划成几段,使得每一段都是+x在-x前面,二者均要有. 问划成几段,每一段的大小是多少. 思路 用 ...

  2. C++踩坑——用memset对vector进行初始化

    在一段程序中,使用memset对vector进行了初始化,然后得到了错误的结果.找这个bug花费了很长时间. vector中有其自身的结构,不能单纯的按字节进行初始化.使用memset对vector进 ...

  3. SpringCloud学习笔记(九、SpringCloud Stream)

    目录: 什么是SpringCloud Stream 如何使用SpringCloud Stream 消息分流 什么是SpringCloud Stream: SpringCloud Stream是一个用于 ...

  4. day75_10_22频率认证和jwt

    一.频率认证原理. 1.从dispatch中获取配置,找到setting中的配置. 2.从thtoyyling中寻找到各个认证类. 3.所有认证类都继承自basethrottle,basethrott ...

  5. 实时获取input框内容

    源码: <%@ page language="java" contentType="text/html; charset=utf-8" pageEncod ...

  6. 洛谷P1283 平板涂色 &&一本通1445:平板涂色

    题目描述 CE数码公司开发了一种名为自动涂色机(APM)的产品.它能用预定的颜色给一块由不同尺寸且互不覆盖的矩形构成的平板涂色. 为了涂色,APM需要使用一组刷子.每个刷子涂一种不同的颜色C.APM拿 ...

  7. MySQL实战45讲学习笔记:第二十五讲

    一.引子 在上一篇文章中,我和你介绍了 binlog 的基本内容,在一个主备关系中,每个备库接收主库的 binlog 并执行. 正常情况下,只要主库执行更新生成的所有 binlog,都可以传到备库并被 ...

  8. 运维相关指标数据采集并ES入仓 - 运维笔记

    为了进行数字化IT治理,需要对一些应用进程相关指标进行采集并入库.收集到的应用指标数据最好要进行ES入仓,入到Kafka里面,并通过Kibana可视化展示. 需要进行采集的应用进程相关指标如下: ES ...

  9. mysql 写计数器需要注意的问题

    MySql计数器,如网站点击数,如何实现高性能高并发的计数器功能 由于并发的时候 不能同时写入一行数据 所以要分开写<pre>先创建表CREATE TABLE `article_view` ...

  10. eclipse 下载、安装、创建java文件工程、运行---Windows 10

    一.Eclipse Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境.幸运的是,Eclipse 附带了一个标准的插 ...