云虚拟主机BCH

    通过app.conf修改BCH环境配置

    app.conf配置文件

    app.conf是BCH提供的部署配置文件,您通过配置app.conf可以实现主机环境的自定义。

    注意: app.conf须严格遵照YAML语法规范,任何不合规范的配置,如使用中文、Tab或不符合缩进规则等,均会导致发布失败。

    你可通过在app.conf文件中配置handlers规则来实现环境的高级配置:

    • url/regex_url:设置路由规则(包括默认首页顺序),与script规则配合使用。
    • UrlRewrite:对于不存在的路径,根据正则表达式进行重定向。
    • errordoc: 自定义错误页面
    • expire:设置过期时间
    • mime: 设置某类扩展名对应的文件类型
    • check_exist:检查文件或目录是否存在
    • ipblacklist与ipwhitelist: 设置黑白名单

    通过url/regex_urlrewrite_not_exist配合使用,能够实现绝大多数伪静态功能。

    url/regex_url设置路由规则

    url与regex_url

    • 作用

      设置路由规则,包括默认首页顺序。其中,url设定的正则表达式所匹配字符串是用户输入URL的子串(“/”作为特例,需精确匹配),与script规则配合使用;而regex_url设定的正则表达式须与用户输入URL完全匹配,可与script、status_code及location规则配合使用。

    • 语法

        handlers :
          - url : <Regex>
            script : <File_Path>
          - url : <Regex>
            static_files : <File_Path>
          - regex_url : <Regex>
            script : <File_Path>
          - regex_url : <Regex>
            status_code : {301 | 302 | 403 | 404}
            [location : <Redirection_Page>]

      注意:

      [location: <Redirection_Page>]仅能在status_code设为301或302时使用。

    • 代码示例

         # 设置默认首页顺序示例
         hanlders :
            - url : /
              script : index.php
            - url : /
              script : index.html
              
          # url示例
          handlers :
            - url : /
              script : home.php
            - url : /index\.html
              script : home.php
            - url : /(aaa)/(.*\.gif)  
              static_files : static/$2
            - url : /admin/.* 
              script : admin.php
      
          # regex_url示例
            - regex_url : ^/[a-z0-9]\.html$
              script : /index.php       
            - regex_url : ^/secure_page$
              status_code : 403
            - regex_url : ^/secure_page$
              status_code : 302
              location : http://example.com/error.html
              
           # 任何request都返回503示例
           handlers :
            - url : /(.*)
              script : maintaince.php
              
              maintaince.php
              <?php
               header("HTTP/1.1 503 Service Unavailable");
              ?>
              this service is down for maintaince, please contact admin.    

    伪静态UrlRewrite

    rewrite_not_exist

    • 作用

      用户请求的<Regex>路径不存在的时候,根据<Regex>进行正则匹配,然后替换为<New_File_Path>

    • 语法

        handlers :
          - rewrite_not_exist: <Regex>
            script : <New_File_Path>  
    • 代码示例

      # example 1
      handlers :
        - rewrite_not_exist: (.*)
          script : /index.php/$1   

    自定义错误页

    errordoc

    • 作用

      自定义错误页面,设定Web服务器在处理用户请求发生错误时所返回的错误页面。

    • 语法

        handlers :
          - errordoc : <Error_Code> <Error_Response_Page>    

      注意:

      <<Error_Code>为“0”时表示任意错误。

    • 代码示例

        handlers :
          - errordoc : 403 /error/403.html
          - errordoc : 404 /error/404.html
          - errordoc : 0 /error/default.html

    设置过期时间

    expire

    • 作用

      设置过期时间,指导浏览器对其进行缓存和失效操作。

    • 语法

        handlers :
          - expire : <File_Extension> {access | modify} <Number> {years | months | weeks | days | hours | minutes | seconds} 
    • 代码示例

        handlers :
          - expire : .jpg modify 10 years
          - expire : .swf modify 10 years
          - expire : .png modify 10 years
          - expire : .gif modify 10 years
          - expire : .JPG modify 10 years
          - expire : .ico modify 10 years

    MIME文件类型定义

    mime

    • 作用

      设置某类扩展名对应的文件类型。

    • 语法

        handlers :
          - mime : <File_Extension> <Content_Type>
    • 代码示例

        handlers :
          - mime: .txt text/plain
          

    检查文件和目录是否存在

    check_exist

    • 作用

      检查文件和目录是否存在,并根据判断结果进行处理,可与script、status_code、location规则配合完成使用。

    • 语法

        handlers :
          # 格式一
          - check_exist : {file_exist | dir_exist | not_exist}
            script : <File_Path>  
          # 格式二 
          - check_exist : {file_exist | dir_exist | not_exist}
            status_code : {301 | 302 | 403 | 404}
            [location : <Redirection_Page>]

      注意:

      [location: <redirection_page>]仅能在status_code设为301或302时使用。

    • 代码示例

      # example 1
      handlers :
        - check_exist : not_exist
               script : /index.php   
      
      # example 2
      handlers :
        - check_exist : not_exist
          status_code: 403
      
      # example 3
      handlers :
        - check_exist : not_exist
          status_code : 302
             location : http://example.com/error.html    

    设置IP 黑名单/白名单

    ipblacklist与ipwhitelist

    • 作用

      • 黑名单:设置禁止通过的用户,黑名单以外的用户均能通过。
      • 白名单:设置能通过的用户,白名单以外的用户均不能通过。
    • 语法

        handlers :
          - ipblacklist : [<Regex_URL_Pattern>] <IP_Pattern>
          - ipwhitelist : [<Regex_URL_Pattern>] <IP_Pattern>

      注意:

      • [<Regex_URL_Pattern>]省略时表示所有URL地址。
      • <IP_Pattern>可以使用IP地址、IP地址/掩码、正则表达式,之间用逗号隔开。
    • 代码示例

        # 设置黑名单
        handlers :
          - ipblacklist : 192.168.1.* 
          - ipblacklist : 192.168.1.0/24
          - ipblacklist : /critical\.html 192.168.0.*
      
        # 设置白名单
        handlers :
          - ipwhitelist : 192.168.1.0/24
          - ipwhitelist : 192.168.0.10,192.168.1.*,192.168.2.0/24  

    完整示例

    该示例包含设置默认首页,404处理,URL Rewrite、重定向和过期处理。

        handlers:
      
        # 设置默认首页
    	  - url : /
          script : home.php
    
    	  # URL Rewrite,所有的图片都访问其他地址
            - regex_url: /picture/(.*\.gif)
    	    static_files: static/$1
    	
    	  # URL Rewrite,所有的html访问都转换为php访问
    	  -regex_url:^/([a-z0-9]*)\.html$
    	   script: /process.php?$1
    	
    	  # 重定向访问处理
    	  -regex_url:^/permission_page$
    	   status_code: 302
    	   location: http://example.com/error.html
    	
    	  # 处理404错误
    	  - errordoc : 404 /error/404.html
    	  - errordoc : 403 /error/permission.html
    
    	  # 过期处理
    	  - expire : .jpg modify 10 years
          - expire : .swf modify 10 years
          - expire : .png modify 10 years
          - expire : .gif modify 10 years
          - expire : .JPG modify 10 years
          - expire : .ico modify 10 years
    
          # mime 设置默认首页
          - mime: .txt text/plain
    	  - mime: .json application/json

    通过app.conf实现伪静态示例

    通过url/regex_urlrewrite_not_exist配合使用,能够实现绝大多数伪静态功能。本节将以Wordpress和discuz为例,给出典型的app.conf配置示例。

    wordpress

    如果wordpress设置为“朴素”方式,则app.conf不需要进行其他处理。如果为其他方式,则需要在app.conf中加入以下规则:

    - rewrite_not_exist: (.*)
      script: /index.php/$1

    完整的app.conf文件内容如下:

    handlers:
        - url : /
        script : /index.php
        script : /index.html
    
        - rewrite_not_exist: (.*)
        script: /index.php/$1
    
        - errordoc : 404 /error/404.html
    
        - expire : .jpg modify 10 years
        - expire : .swf modify 10 years
        - expire : .png modify 10 years
        - expire : .gif modify 10 years
        - expire : .JPG modify 10 years
        - expire : .ico modify 10 years

    discuz

    如果用户部署的是discuz,建议在app.conf中加入以下规则:

    - regex_url: ^/topic-(.+)\.html$
      script: /portal.php?mod=topic&topic=$1&%1
    - regex_url: ^/article-([0-9]+)-([0-9]+)\.html$
      script: /portal.php?mod=view&aid=$1&page=$2&%1
    - regex_url: ^/forum-(\w+)-([0-9]+)\.html$
      script: /forum.php?mod=forumdisplay&fid=$1&page=$2&%1
    - regex_url: ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$
      script: /forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
    - regex_url: ^/group-([0-9]+)-([0-9]+)\.html$
      script: /forum.php?mod=group&fid=$1&page=$2&%1
    - regex_url: ^/space-(username|uid)-(.+)\.html$
      script: /home.php?mod=space&$1=$2&%1
    - regex_url: ^/blog-([0-9]+)-([0-9]+)\.html$
      script: /home.php?mod=space&uid=$1&do=blog&id=$2&%1
    - regex_url: ^/archiver/(fid|tid)-([0-9]+)\.html$
      script: /archiver/index.php?action=$1&value=$2&%1
    - regex_url: ^/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$
      script: /plugin.php?id=$1:$2&%1

    完整的app.conf内容如下:

    handlers:
        - url : /
        script : /index.php
        script : /index.html
    
        - regex_url: ^/topic-(.+)\.html$
        script: /portal.php?mod=topic&topic=$1&%1
        - regex_url: ^/article-([0-9]+)-([0-9]+)\.html$
        script: /portal.php?mod=view&aid=$1&page=$2&%1
        - regex_url: ^/forum-(\w+)-([0-9]+)\.html$
        script: /forum.php?mod=forumdisplay&fid=$1&page=$2&%1
        - regex_url: ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$
        script: /forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
        - regex_url: ^/group-([0-9]+)-([0-9]+)\.html$
        script: /forum.php?mod=group&fid=$1&page=$2&%1
        - regex_url: ^/space-(username|uid)-(.+)\.html$
        script: /home.php?mod=space&$1=$2&%1
        - regex_url: ^/blog-([0-9]+)-([0-9]+)\.html$
        script: /home.php?mod=space&uid=$1&do=blog&id=$2&%1
        - regex_url: ^/archiver/(fid|tid)-([0-9]+)\.html$
        script: /archiver/index.php?action=$1&value=$2&%1
        - regex_url: ^/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$
        script: /plugin.php?id=$1:$2&%1
    
        - errordoc : 404 /error/404.html
    
        - expire : .jpg modify 10 years
        - expire : .swf modify 10 years
        - expire : .png modify 10 years
        - expire : .gif modify 10 years
        - expire : .JPG modify 10 years
        - expire : .ico modify 10 years
    上一篇
    上传网站文件
    下一篇
    Nginx环境高级配置