• 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:wwwapacheApache2.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,限制异常请求,减少攻击

      LimitRequestLinbytes  限制客户端接收请求行大小,即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  

      

      

  • 相关阅读:
    小刘的PHP面试碰到的坑
    小刘的PHP面试碰到的坑
    小刘的项目经验
    04 mysql 深入浅出索引(上)
    CGI,FastCGI和PHP-FPM之间的关系和区别。
    mysql客户端模拟脏读、幻读和可重复读
    mysql 3 | 事务隔离:为什么你改了我还看不见?
    sa账号无法登陆sqlserver2008
    Java单体应用
    Java单体应用
  • 原文地址:https://www.cnblogs.com/fanshehu/p/11941462.html
Copyright © 2020-2023  润新知