ace 之 app.xml 说明

代码层应用配置 - app.xml 说明

  • svn 根目录下创建一个 app.xml 文件, 和 webroot 平级
  • 当同时存在 app.xml 和 app.yaml 文件时,仅有 app.xml 配置文件生效
  • 以下是配置格式模板,您可以根据需要修改参数,然后去掉配置项前的注释,保存后生效
  • 说明:“”为注释说明,其中 xxx 表示的字符仅作备注用,不会作为配置参数生效
  • 不能用制表符(缩进符),使用空格缩进
  • 该文件最大不得超过 1.6k 字节
  • xml文件的配置项有3类配置格式,配置项的格式必须通过相应标签的type属性来指定
  • 修改配置文件后,记得重新部署(如果没有自动部署) + 重启

默认配置

    <!-- 当目录路径无法找到时, tryuri 转发到 index.php 处理, 这个等同于 nginx 规则中的 try_files $uri index.php, --> 
<!-- 目前 tryuri 仅支持目录路径, 对于文件路径类似 /xx-xx-xx.html 这种转发要自定义 rewrite 规则 -->
<?xml version="1.0" encoding="utf-8"?>
<xmlconf> <!-- 根标签,内容可以任意,但务必添加 -->
<tryuri type="three_level_tag">
<tryuri_rule>
<path>/</path>
<script>/index.php</script>
</tryuri_rule>
</tryuri>

<ossprefix type="two_level_tag">
<ossprefix_path>/ace/app/</ossprefix_path>
</ossprefix>
</xmlconf>

配置URL重写

  • 支持最多配置10个重写规则
  • 使用nginx语法,禁用的字符 ';', "\n", "'", '"', '{', '}'
  • 非 permanent 结尾的规则不支持重定向到 http(s) 或 $scheme 服务
  • 配置格式: rewrite type="three_level_tag"

示例:

    <!-- 这里对应的 nginx 规则为: rewrite ^/1.jpg$ /hello.php last; -->
<rewrite type="three_level_tag">
<rewrite_rule>
<url>^/1.jpg$</url>
<script>http://xx.com/hello.php permanent</script> <!-- 外部跳转 -->
</rewrite_rule>
<rewrite_rule>
<url>^/(.+)\.html$</url>
<script>/index.php?q=$1 last</script>
</rewrite_rule>
</rewrite>

特殊应用,如: wordpress

  • tryuri 不支持正则表达式,只有路径和入口, 请不要写成类似 rewrite 格式
  • 配置格式: tryuri type="three_level_tag"

示例:

    <tryuri type="three_level_tag">
<tryuri_rule>
<path>/</path> <!-- 如果你的 blog在 /wp下, 请配置 /wp -->
<script>/index.php</script> <!-- 表示uri请求会转发到 /index.php -->
</tryuri_rule>
</tryuri>

针对 header 的 URL 跳转:

    <!-- 这边的例子是当用户绑定外部域名时, 跳转到外部域名的例子 -->
<rewrite_header type="three_level_tag">
<rewrite_header_rule>
<header>host</header>
<!-- 缺省是模糊匹配,全匹配到 www.xxx.com,但是如果不想匹配到 www.xxx.com,要使用 ^xxx.com$ -->
<value>xxx.com</value>
<goto>http://xxx.com permanent</goto>
</rewrite_header_rule>
<rewrite_header_rule>
<header>Cookie</header>
<value>^key-(.*)$</value>
<goto>/url.php?key=$1</goto>
</rewrite_header_rule>
<rewrite_header_rule>
<!-- 用于判断如果不是访问自 https url,则跳转到 https 的 url, permanent 不可省略 -->
<header>ACE-Protocol</header>
<value>^http$</value>
<goto>https://xxx.aliapp.com permanent </goto>
</rewrite_header_rule>
</rewrite_header>

配置防盗链

  • 配置格式: antihotlinking type="three_level_tag"

示例:

    <antihotlinking type="three_level_tag">
<antihotlinking_rule>
<except>[/xxxx/1.gif, /xxxx/xxx/2.js]</except> <!-- 例外的 url, 防盗链不生效的路径文件/目录, 最多10个不生效配置项 -->
</antihotlinking_rule>
</antihotlinking>

配置目录访问控制

  • 列出禁止浏览器访问的/ace/app/webroot/下的目录
  • 支持最多配置10个目录,注意请在目录最后加 ”/“,否则认为是前缀匹配
  • 配置格式: deny type="two_level_tag"

示例:

    <deny type="two_level_tag">
<deny_path>/bin/</deny_path>
<deny_path>/admin/</deny_path>
</deny>

配置特定目录的IP黑白名单

  • 注意allowip 和 denyip 只能配置其中一个
  • 最多配置10个路径规则
  • 每个规则最多10个IP
  • 路径(目录)名只能匹配^[a-zA-Z0-9/.//-_]+$
  • 配置格式: denyuri type="three_level_tag"

示例:

    <denyuri type="three_level_tag">
<denyuri_rule>
<path>/bin/</path>
<allowip>[1.1.1.1, 2.2.2.2]</allowip>
<denyip>[3.3.3.3, 4.4.4.4]</denyip>
</denyuri_rule>
</denyuri>

已有的OSS服务引入

  • ACE 扩展服务中为每个用户分配了基于OSS 的 storage 服务
  • 同时也支持外部 OSS 配置引入, 用于支持分布式读写
  • 配置格式: oss_xxx type="one_level_tag"

示例:

    <oss_id type="one_level_tag">access_key</oss_id>    <!-- 请填写阿里云用户中心->安全认证中生效状态的access_key -->
<oss_secret type="one_level_tag">secret_key</oss_secret> <!-- 请填写access_key对应的secret_key -->
<oss_bucket type="one_level_tag">bucket_name</oss_bucket> <!-- 请指定用于存储文件bucket -->

本地读写同步OSS(storage)

  • 配置网络分布式读写的目录 (路径), 请先在ACE"扩展服务"中创建 storage 服务(如果未引入自有OSS)
  • storage 服务激活后会生成一个隐含的空间, ACE 会将动态生成的文件生成到“隐含空间”(Alibaba::Storage([空]))
  • 单个文件写入最大字节数不超过4MB,超出限制的文件不予写入
  • 支持最多配置10个目录
  • 暂不支持配置目录下对子目录的遍历操作
  • 暂不支持并发读写, 需要自行解决读写一致性问题
  • 在所配置的 OSS(storage) bucket 下会生成同路径的文件夹和文件, 请勿删除和修改
  • "同步" 指的是在生成新文件时同步到 oss 上
  • 配置格式: ossprefix type="two_level_tag"

示例:

    <ossprefix type="two_level_tag">
<ossprefix_path>/ace/app/webroot/wp-content/</ossprefix_path> <!-- 填写绝对路径, ACE 上的代码目录以 /ace/app 做为绝对路径 -->
<ossprefix_path>/ace/app/webroot/wp-admin/</ossprefix_path>
</ossprefix>

过期时间配置

示例:

    <expires type="three_level_tag">
<expires_rule>
<path>/bin/xxx/.*\.js</path> <!--匹配路径表达式-->
<time>1h</time> <!--过期时间值-->
</expires_rule>
</expires>

配置 php 进程内存上限 (Memory_limit)

  • 内存设置越小, php 处理请求的能力越强, 并发能力越强
  • 内存设置加大, 主要用于消耗内存过多的应用
  • 配置的最小值不小于 8, 最大值根据运行环境不同而定, 一般是 48 ~ 128
  • 配置格式: memory_limit type="one_level_tag"

示例:

    <memory_limit type="one_level_tag">16</memory_limit>  <!-- 8 或 32 或 48 等, 注意不要加 m或者M -->