You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by we...@apache.org on 2019/11/15 10:07:37 UTC

[incubator-apisix] branch v0.9 updated: license: removed dashboard and logos. (#858)

This is an automated email from the ASF dual-hosted git repository.

wenming pushed a commit to branch v0.9
in repository https://gitbox.apache.org/repos/asf/incubator-apisix.git


The following commit(s) were added to refs/heads/v0.9 by this push:
     new a77dbe1  license: removed dashboard and logos. (#858)
a77dbe1 is described below

commit a77dbe173213b385a453e9e34d4dc8465d1e8a15
Author: WenMing <mo...@gmail.com>
AuthorDate: Fri Nov 15 18:07:31 2019 +0800

    license: removed dashboard and logos. (#858)
---
 CHANGELOG.md                                       |  25 ++--
 CHANGELOG_CN.md                                    |  25 ++--
 CODE_OF_CONDUCT.md                                 |  95 -------------
 Makefile                                           |  14 +-
 README.md                                          | 153 +++++----------------
 README_CN.md                                       | 130 ++++-------------
 dashboard                                          |   1 -
 doc/README.md                                      |  12 +-
 doc/README_CN.md                                   |   3 +-
 doc/{dev-manual-cn.md => how-to-build-cn.md}       |  84 +++++------
 doc/{dev-manual.md => how-to-build.md}             |  82 +++++------
 doc/images/cncf-landscope.jpg                      | Bin 271344 -> 0 bytes
 doc/images/plugin/jwt-auth-1.png                   | Bin 45338 -> 38204 bytes
 doc/images/plugin/jwt-auth-2.png                   | Bin 77545 -> 227769 bytes
 doc/images/plugin/key-auth-1.png                   | Bin 45338 -> 37526 bytes
 doc/images/plugin/key-auth-2.png                   | Bin 65698 -> 182157 bytes
 doc/images/plugin/limit-conn-1.png                 | Bin 65883 -> 72052 bytes
 doc/images/plugin/limit-conn-2.png                 | Bin 96260 -> 325773 bytes
 doc/images/plugin/limit-count-1.png                | Bin 142664 -> 74547 bytes
 doc/images/plugin/limit-count-2.png                | Bin 126497 -> 119480 bytes
 doc/images/plugin/limit-req-1.png                  | Bin 66804 -> 70315 bytes
 doc/images/plugin/limit-req-2.png                  | Bin 91552 -> 289197 bytes
 doc/images/plugin/prometheus-1.png                 | Bin 64314 -> 67980 bytes
 doc/images/plugin/prometheus-2.png                 | Bin 83369 -> 237119 bytes
 doc/images/plugin/zipkin-1.jpg                     | Bin 272972 -> 247284 bytes
 doc/images/plugin/zipkin-1.png                     | Bin 69668 -> 77813 bytes
 doc/images/plugin/zipkin-2.jpg                     | Bin 168128 -> 117181 bytes
 doc/images/plugin/zipkin-2.png                     | Bin 89437 -> 277580 bytes
 doc/images/user-wall.jpg                           | Bin 187855 -> 0 bytes
 doc/install-dependencies.md                        |   5 +
 doc/powered-by.md                                  |  10 +-
 ...isix-0.9-rc1.rockspec => apisix-0.9-0.rockspec} |   5 +-
 32 files changed, 187 insertions(+), 457 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 851eba9..155186c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -26,7 +26,6 @@
 
 
 ## 0.9.0-RC1
-> Released on 2019/11/11
 
 This release brings many new features, such as support for running APISIX with Tengine,
 an advanced debugging mode that is more developer friendly, and a new URI redirection plugin.
@@ -39,24 +38,24 @@ an advanced debugging mode that is more developer friendly, and a new URI redire
 - Removed router R3 [#725](https://github.com/apache/incubator-apisix/pull/725)
 
 ### Plugins
-- [Redirect URI](https://github.com/apache/incubator-apisix/blob/master/doc/plugins/redirect.md):【New Plugin】Redirect URI plugin. [#732](https://github.com/apache/incubator-apisix/pull/732)
-- [Proxy Rewrite](https://github.com/apache/incubator-apisix/blob/master/doc/plugins/proxy-rewrite.md):【New Feature】Supported remove `header` feature. [#658](https://github.com/apache/incubator-apisix/pull/658)
-- [Limit Count](https://github.com/apache/incubator-apisix/blob/master/doc/plugins/limit-count.md):【New Feature】Supported global limit count with `Redis Server`.[#624](https://github.com/apache/incubator-apisix/pull/624)
+- [Redirect URI](https://github.com/apache/incubator-apisix/blob/master/doc/plugins/redirect.md):[New Plugin] Redirect URI plugin. [#732](https://github.com/apache/incubator-apisix/pull/732)
+- [Proxy Rewrite](https://github.com/apache/incubator-apisix/blob/master/doc/plugins/proxy-rewrite.md):[New Feature] Supported remove `header` feature. [#658](https://github.com/apache/incubator-apisix/pull/658)
+- [Limit Count](https://github.com/apache/incubator-apisix/blob/master/doc/plugins/limit-count.md):[New Feature] Supported global limit count with `Redis Server`.[#624](https://github.com/apache/incubator-apisix/pull/624)
 
 ### lua-resty-*
 - lua-resty-radixtree
-    - 【New Feature】Support for `host + uri` as an index.
+    - [New Feature] Support for `host + uri` as an index.
 - lua-resty-jsonschema
-    - 【New Plugin】This extension is a JSON data validator that replaces the existing `lua-rapidjson` extension.
+    - [New Plugin] This extension is a JSON data validator that replaces the existing `lua-rapidjson` extension.
 
 ### Bugfix
-- 【Bug】key-auth plugin cannot run accurately in the case of multiple consumers. [#826](https://github.com/apache/incubator-apisix/pull/826)
-- 【Bug】Exported schema for plugin serverless. [#787](https://github.com/apache/incubator-apisix/pull/787)
-- 【Bug】Discard args of uri when using proxy-write plugin [#642](https://github.com/apache/incubator-apisix/pull/642)
-- 【Bug】Zipkin plugin not set tracing data to request header. [#715](https://github.com/apache/incubator-apisix/pull/715)
-- 【Optimization】Skipped check cjson for luajit environment in apisix CLI. [#652](https://github.com/apache/incubator-apisix/pull/652)
-- 【Optimization】Skipped to init etcd if use local file as config center. [#737](https://github.com/apache/incubator-apisix/pull/737)
-- 【Optimization】Support more built-in parameters when set chash balancer. [#775](https://github.com/apache/incubator-apisix/pull/775)
+- [Bug] key-auth plugin cannot run accurately in the case of multiple consumers. [#826](https://github.com/apache/incubator-apisix/pull/826)
+- [Bug] Exported schema for plugin serverless. [#787](https://github.com/apache/incubator-apisix/pull/787)
+- [Bug] Discard args of uri when using proxy-write plugin [#642](https://github.com/apache/incubator-apisix/pull/642)
+- [Bug] Zipkin plugin not set tracing data to request header. [#715](https://github.com/apache/incubator-apisix/pull/715)
+- [Optimization] Skipped check cjson for luajit environment in apisix CLI. [#652](https://github.com/apache/incubator-apisix/pull/652)
+- [Optimization] Skipped to init etcd if use local file as config center. [#737](https://github.com/apache/incubator-apisix/pull/737)
+- [Optimization] Support more built-in parameters when set chash balancer. [#775](https://github.com/apache/incubator-apisix/pull/775)
 
 ### Dependencies
 - Replace the `lua-rapidjson` module with `lua-resty-jsonschema` global,  `lua-resty-jsonschema` is faster and easier to compile.
diff --git a/CHANGELOG_CN.md b/CHANGELOG_CN.md
index 8a32bc3..70d7c00 100644
--- a/CHANGELOG_CN.md
+++ b/CHANGELOG_CN.md
@@ -26,7 +26,6 @@
 
 
 ## 0.9.0-RC1
-> Released on 2019/11/11
 
 这个版本带来很多新特性,比如支持使用 Tengine 运行 APISIX,增加了对开发人员更友好的高级调试模式,还有新的URI重定向插件等。
 
@@ -39,24 +38,24 @@
 
 
 ### Plugins
-- :sunrise: **[Redirect URI](https://github.com/apache/incubator-apisix/blob/master/doc/plugins/redirect.md)**:【新插件】URI 重定向插件。 [#732](https://github.com/apache/incubator-apisix/pull/732)
-- [Proxy Rewrite](https://github.com/apache/incubator-apisix/blob/master/doc/plugins/proxy-rewrite.md):【新增功能】支持 `header` 删除功能。 [#658](https://github.com/apache/incubator-apisix/pull/658)
-- [Limit Count](https://github.com/apache/incubator-apisix/blob/master/doc/plugins/limit-count.md):【新增功能】通过 `Redis Server` 聚合 `APISIX` 节点之间将共享流量限速结果,实现集群流量限速。[#624](https://github.com/apache/incubator-apisix/pull/624)
+- :sunrise: **[Redirect URI](https://github.com/apache/incubator-apisix/blob/master/doc/plugins/redirect.md)**:[新插件] URI 重定向插件。 [#732](https://github.com/apache/incubator-apisix/pull/732)
+- [Proxy Rewrite](https://github.com/apache/incubator-apisix/blob/master/doc/plugins/proxy-rewrite.md):[新增功能] 支持 `header` 删除功能。 [#658](https://github.com/apache/incubator-apisix/pull/658)
+- [Limit Count](https://github.com/apache/incubator-apisix/blob/master/doc/plugins/limit-count.md):[新增功能] 通过 `Redis Server` 聚合 `APISIX` 节点之间将共享流量限速结果,实现集群流量限速。[#624](https://github.com/apache/incubator-apisix/pull/624)
 
 ### lua-resty-*
 - lua-resty-radixtree
-    - 【新增功能】支持将`host + uri`作为索引。
+    - [新增功能] 支持将`host + uri`作为索引。
 - lua-resty-jsonschema
-    - 【新增扩展】该扩展作用是JSON数据验证器,用于替换现有的 `lua-rapidjson` 扩展。
+    - [新增扩展] 该扩展作用是JSON数据验证器,用于替换现有的 `lua-rapidjson` 扩展。
 
 ### Bugfix
-- 【问题】在多个使用者的情况下,`key-auth` 插件无法正确运行。 [#826](https://github.com/apache/incubator-apisix/pull/826)
-- 【问题】无法在 `API Server` 中获取 `serverless`插件配置。 [#787](https://github.com/apache/incubator-apisix/pull/787)
-- 【问题】解决使用 `proxy-write` 重写URI时GET参数丢失问题。 [#642](https://github.com/apache/incubator-apisix/pull/642)
-- 【问题】`Zipkin` 插件未将跟踪数据设置为请求头. [#715](https://github.com/apache/incubator-apisix/pull/715)
-- 【优化】使用本地文件作为配置中心时,跳过 etcd 初始化。 [#737](https://github.com/apache/incubator-apisix/pull/737)
-- 【优化】在APISIX CLI中跳过 luajit 环境的`check cjson`。[#652](https://github.com/apache/incubator-apisix/pull/652)
-- 【优化】配置 `Upstream` 时,选择 `balancer` 类型为 `chash` 时,支持更多Nginx内置变量作为计算key。 [#775](https://github.com/apache/incubator-apisix/pull/775)
+- [问题] 在多个使用者的情况下,`key-auth` 插件无法正确运行。 [#826](https://github.com/apache/incubator-apisix/pull/826)
+- [问题] 无法在 `API Server` 中获取 `serverless`插件配置。 [#787](https://github.com/apache/incubator-apisix/pull/787)
+- [问题] 解决使用 `proxy-write` 重写URI时GET参数丢失问题。 [#642](https://github.com/apache/incubator-apisix/pull/642)
+- [问题] `Zipkin` 插件未将跟踪数据设置为请求头. [#715](https://github.com/apache/incubator-apisix/pull/715)
+- [优化] 使用本地文件作为配置中心时,跳过 etcd 初始化。 [#737](https://github.com/apache/incubator-apisix/pull/737)
+- [优化] 在APISIX CLI中跳过 luajit 环境的`check cjson`。[#652](https://github.com/apache/incubator-apisix/pull/652)
+- [优化] 配置 `Upstream` 时,选择 `balancer` 类型为 `chash` 时,支持更多Nginx内置变量作为计算key。 [#775](https://github.com/apache/incubator-apisix/pull/775)
 
 
 ### Dependencies
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
deleted file mode 100644
index 707b36f..0000000
--- a/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,95 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-# Contributor Covenant Code of Conduct
-
-## Our Pledge
-
-In the interest of fostering an open and welcoming environment, we as
-contributors and maintainers pledge to making participation in our project and
-our community a harassment-free experience for everyone, regardless of age, body
-size, disability, ethnicity, sex characteristics, gender identity and expression,
-level of experience, education, socio-economic status, nationality, personal
-appearance, race, religion, or sexual identity and orientation.
-
-## Our Standards
-
-Examples of behavior that contributes to creating a positive environment
-include:
-
-* Using welcoming and inclusive language
-* Being respectful of differing viewpoints and experiences
-* Gracefully accepting constructive criticism
-* Focusing on what is best for the community
-* Showing empathy towards other community members
-
-Examples of unacceptable behavior by participants include:
-
-* The use of sexualized language or imagery and unwelcome sexual attention or
- advances
-* Trolling, insulting/derogatory comments, and personal or political attacks
-* Public or private harassment
-* Publishing others' private information, such as a physical or electronic
- address, without explicit permission
-* Other conduct which could reasonably be considered inappropriate in a
- professional setting
-
-## Our Responsibilities
-
-Project maintainers are responsible for clarifying the standards of acceptable
-behavior and are expected to take appropriate and fair corrective action in
-response to any instances of unacceptable behavior.
-
-Project maintainers have the right and responsibility to remove, edit, or
-reject comments, commits, code, wiki edits, issues, and other contributions
-that are not aligned to this Code of Conduct, or to ban temporarily or
-permanently any contributor for other behaviors that they deem inappropriate,
-threatening, offensive, or harmful.
-
-## Scope
-
-This Code of Conduct applies both within project spaces and in public spaces
-when an individual is representing the project or its community. Examples of
-representing a project or community include using an official project e-mail
-address, posting via an official social media account, or acting as an appointed
-representative at an online or offline event. Representation of a project may be
-further defined and clarified by project maintainers.
-
-## Enforcement
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported by contacting the project team at moonbingbing@gmail.com. All
-complaints will be reviewed and investigated and will result in a response that
-is deemed necessary and appropriate to the circumstances. The project team is
-obligated to maintain confidentiality with regard to the reporter of an incident.
-Further details of specific enforcement policies may be posted separately.
-
-Project maintainers who do not follow or enforce the Code of Conduct in good
-faith may face temporary or permanent repercussions as determined by other
-members of the project's leadership.
-
-## Attribution
-
-This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
-available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
-
-[homepage]: https://www.contributor-covenant.org
-
-For answers to common questions about this code of conduct, see
-https://www.contributor-covenant.org/faq
diff --git a/Makefile b/Makefile
index b5d1785..19bac98 100644
--- a/Makefile
+++ b/Makefile
@@ -22,11 +22,9 @@ INST_BINDIR ?= /usr/bin
 INSTALL ?= install
 UNAME ?= $(shell uname)
 OR_EXEC ?= $(shell which openresty)
-LUA_JIT_DIR ?= $(shell ${OR_EXEC} -V 2>&1 | grep prefix | grep -Eo 'prefix=(.*?)/nginx' | grep -Eo '/.*/')luajit
 LUAROCKS_VER ?= $(shell luarocks --version | grep -E -o  "luarocks [0-9]+.")
 lj-releng-exist = $(shell if [ -f 'utils/lj-releng' ]; then echo "exist"; else echo "not_exist"; fi;)
 
-
 .PHONY: default
 default:
 
@@ -42,15 +40,17 @@ help:
 ### deps:         Installation dependencies
 .PHONY: deps
 deps:
-ifeq ($(UNAME),Darwin)
-	luarocks install --lua-dir=$(LUA_JIT_DIR) rockspec/apisix-master-0.rockspec --tree=deps --only-deps --local
+ifeq ($(OR_EXEC), )
+	@echo "OpenResty not found. You have to install OpenResty and add the binary file to PATH before install Apache APISIX."
+	exit 1
+else ifeq ($(UNAME),Darwin)
+	luarocks install --lua-dir=$(shell ${OR_EXEC} -V 2>&1 | grep prefix | grep -Eo 'prefix=(.*?)/nginx' | grep -Eo '/.*/')luajit rockspec/apisix-0.9-0.rockspec --tree=deps --only-deps --local
 else ifneq ($(LUAROCKS_VER),'luarocks 3.')
-	luarocks install rockspec/apisix-master-0.rockspec --tree=deps --only-deps --local
+	luarocks install rockspec/apisix-0.9-0.rockspec --tree=deps --only-deps --local
 else
-	luarocks install --lua-dir=/usr/local/openresty/luajit rockspec/apisix-master-0.rockspec --tree=deps --only-deps --local
+	luarocks install --lua-dir=/usr/local/openresty/luajit rockspec/apisix-0.9-0.rockspec --tree=deps --only-deps --local
 endif
 
-
 ### utils:        Installation tools
 .PHONY: utils
 utils:
diff --git a/README.md b/README.md
index 1d5b30e..0333d8c 100644
--- a/README.md
+++ b/README.md
@@ -32,8 +32,6 @@ APISIX is a cloud-native microservices API gateway, delivering the ultimate perf
 
 APISIX is based on Nginx and etcd. Compared with traditional API gateways, APISIX has dynamic routing and plug-in hot loading, which is especially suitable for API management under micro-service system.
 
-[Installation](#Installation) | [Documentation](doc/README.md) | [Development ENV](#development-manual-of-apisix) | [FAQ](FAQ.md)
-
 ## Why APISIX?
 
 If you are building a website, mobile device or IoT (Internet of Things) application, you may need to use an API gateway to handle interface traffic.
@@ -84,8 +82,6 @@ For more detailed information, see the [White Paper](https://www.iresty.com/down
 - **Global Rule**: Allows to run any plugin for all request, eg: limit rate, IP filter etc.
 - **[TCP/UDP Proxy](doc/stream-proxy.md)**: Dynamic TCP/UDP proxy.
 - **[Dynamic MQTT Proxy](doc/plugins/mqtt-proxy.md)**: Supports to load balance MQTT by `client_id`, both support MQTT [3.1.*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html), [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html).
-- **ACL**: TODO.
-- **Bot detection**: TODO.
 
 ## Online Demo Dashboard
 We provide an online dashboard [demo version](http://apisix.iresty.com), make it easier for you to understand APISIX.
@@ -93,89 +89,17 @@ We provide an online dashboard [demo version](http://apisix.iresty.com), make
 ## Installation
 
 APISIX Installed and tested in the following systems(OpenResty MUST >= 1.15.8.1, or Tengine >= 2.3.2):
+CentOS 7, Ubuntu 16.04, Ubuntu 18.04, Debian 9, Debian 10, macOS, **ARM64** Ubuntu 18.04
 
-- CentOS 7
-- Ubuntu 16.04
-- Ubuntu 18.04
-- Debian 9
-- Debian 10
-- macOS
-- **ARM64** Ubuntu 18.04
-
-There are four ways to install APISIX:
-- if you are using CentOS 7, it is recommended to use [RPM](#install-from-rpm-for-centos-7);
-- if you are using macOS, only git clone and install by manual are supported. Please take a look at [dev manual](doc/dev-manual.md);
-- other systems please use [Luarocks](#install-from-luarocks-not-support-macos);
-- You can also install from [Docker image](https://github.com/iresty/docker-apisix).
-
-The main steps to install APISIX:
-
-1. Runtime dependency: OpenResty or Tengine.
-    * OpenResty: Reference [http://openresty.org/en/installation.html](http://openresty.org/en/installation.html).
-    * Tengine: Please take a look at this installation step script [Install Tengine at Ubuntu](.travis/linux_tengine_runner.sh).
-2. Configuration center: Reference [etcd](https://github.com/etcd-io/etcd).
-
-    *NOTE*: APISIX currently only supports the v2 protocol storage to etcd, but the latest version of etcd (starting with 3.4) has turned off the v2 protocol by default. You need to add `--enable-v2=true` to the startup parameter to enable the v2 protocol. The development of the v3 protocol supporting etcd has begun and will soon be available.
-
-3. Install APISIX service.
-
-### Install from RPM for CentOS 7
-
-```shell
-sudo yum install yum-utils
-sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
-sudo yum install -y openresty etcd
-sudo service etcd start
-
-sudo yum install -y https://github.com/apache/incubator-apisix/releases/download/v0.8/apisix-0.8-0.el7.noarch.rpm
-```
-
-You can try APISIX with the [**Quickstart**](#quickstart) now.
-
-### Install from Luarocks (not support macOS)
-
-##### Dependencies
-
-APISIX is based on [OpenResty](https://openresty.org/) or [Tengine](http://tengine.taobao.org/), the configures data storage and distribution via [etcd](https://github.com/etcd-io/etcd).
-
-We recommend that you use [luarocks](https://luarocks.org/) to install APISIX, and for different operating systems have different dependencies, see more: [Install Dependencies](doc/install-dependencies.md)
-
-##### Install APISIX
-
-APISIX is installed by running the following commands in your terminal.
-
-> install the master branch via curl
-
-```shell
-sudo sh -c "$(curl -fsSL https://raw.githubusercontent.com/apache/incubator-apisix/master/utils/install-apisix.sh)"
-```
-
-> install the specified version via Luarock:
-
-```shell
-# install apisix with version v0.8
-sudo luarocks install --lua-dir=/path/openresty/luajit apisix 0.8
-
-# old luarocks may not support `lua-dir`, we can remove option `lua-dir`
-sudo luarocks install apisix 0.8
-```
-
-> Installation complete
-
-If all goes well, you will see the message like this:
+Steps to install APISIX:
+1. Installation runtime dependencies: OpenResty and etcd, refer to [documentation](doc/install-dependencies.md);
+2. There are several ways to install Apache APISIX:
+    - [Source code](doc/how-to-build.md#installation-via-source-code)
+    - [RPM package](doc/how-to-build.md#installation-via-rpm-package-centos-7) for CentOS 7
+    - [Luarocks](doc/how-to-build.md#installation-via-luarocks-macos-not-supported)
+    - [Docker](https://github.com/apache/incubator-apisix-docker)
 
-```
-    apisix 0.7-0 is now built and installed in /usr/local/apisix/deps (license: Apache License 2.0)
-
-    + sudo rm -f /usr/local/bin/apisix
-    + sudo ln -s /usr/local/apisix/deps/bin/apisix /usr/local/bin/apisix
-```
-
-Congratulations, you have already installed APISIX successfully.
-
-## Development Manual of APISIX
-
-If you are a developer, you can view the [dev manual](doc/dev-manual.md) for more details.
+Then you can try APISIX with the [**Quickstart**](#quickstart) now.
 
 ## Quickstart
 
@@ -194,16 +118,6 @@ you can follow the [documentation of limit count](doc/plugins/limit-count.md).
 
 Then you can try more [plugins](doc/README.md#plugins).
 
-## Deploy to the Cloud
-
-### AWS
-
-The recommended approach is to deploy APISIX with [AWS CDK](https://aws.amazon.com/cdk/) on [AWS Fargate](https://aws.amazon.com/fargate/) which helps you decouple the APISIX layer and the upstream layer on top of a fully-managed and secure serverless container compute environment with autoscaling capabilities.
-
-See [this guide](https://github.com/pahud/cdk-samples/blob/master/typescript/apisix/README.md) by [Pahud Hsieh](https://github.com/pahud) and learn how to provision the recommended architecture 100% in AWS CDK.
-
-
-
 ## Dashboard
 
 APISIX has the built-in dashboard,open `http://127.0.0.1:9080/apisix/dashboard/` with a browser and try it.
@@ -214,41 +128,40 @@ Dashboard allow any remote IP by default, and you can modify `allow_admin` in `c
 
 ## Benchmark
 
-Using Google Cloud's 4 core server, APISIX's QPS reach to 60,000 with a latency of only 500 microseconds.
+Using AWS's 8 core server, APISIX's QPS reach to 140,000 with a latency of only 0.2 ms.
 
-You can view the [benchmark documentation](doc/benchmark.md) for more detailed information.
-
-## Architecture Design
-
-[Development Documentation](doc/architecture-design.md)
+## Document
+[Documents of Apache APISIX](doc/README.md)
 
 ## Videos And Articles
 
-- 2019.10.30 [Introduction to Apache APISIX Microservice Gateway Extreme Performance Architecture(Chinese)](https://www.upyun.com/opentalk/440.html) .
-- 2019.8.31 [APISIX technology selection, testing and continuous integration(Chinese)](https://www.upyun.com/opentalk/433.html) .
-- 2019.8.31 [APISIX high performance practice 2(Chinese)](https://www.upyun.com/opentalk/437.html) .
-- 2019.7.6 [APISIX high performance practice(Chinese)](https://www.upyun.com/opentalk/429.html) .
-
+- 2019.10.30 [Introduction to Apache APISIX Microservice Gateway Extreme Performance Architecture(Chinese)](https://www.upyun.com/opentalk/440.html)
+- 2019.8.31 [APISIX technology selection, testing and continuous integration(Chinese)](https://www.upyun.com/opentalk/433.html)
+- 2019.8.31 [APISIX high performance practice 2(Chinese)](https://www.upyun.com/opentalk/437.html)
+- 2019.7.6 [APISIX high performance practice(Chinese)](https://www.upyun.com/opentalk/429.html)
 
 ## Who Uses APISIX?
-A wide variety of companies and organizations use APISIX for research, production and commercial product.
-Here is the User Wall of APISIX.
-
-![](doc/images/user-wall.jpg)
+A wide variety of companies and organizations use APISIX for research, production and commercial product, including:
+1. cunw.com.cn
+1. dasouche.com
+1. fansup.mobi
+1. haieruplus.com
+1. ke.com
+1. meizu.com
+1. taikang.com
+1. tangdou.com
+1. Tencent Cloud
+1. zuzuche.com
 
 Users are encouraged to add themselves to the [Powered By](doc/powered-by.md) page.
 
 ## Landscape
-
-APISIX enriches the [CNCF API Gateway Landscape](https://landscape.cncf.io/category=api-gateway&format=card-mode&grouping=category):
-
-![](doc/images/cncf-landscope.jpg)
-
-## FAQ
-
-There are often some questions asked by developers in the community. We have arranged them in the [FAQ](FAQ.md).
-
-If your concerns are not among them, please submit issue to communicate with us.
+<p align="left">
+<img src="https://landscape.cncf.io/images/left-logo.svg" width="150">&nbsp;&nbsp;<img src="https://landscape.cncf.io/images/right-logo.svg" width="200">
+<br/><br/>
+APISIX enriches the <a href="https://landscape.cncf.io/category=api-gateway&format=card-mode&grouping=category">
+CNCF API Gateway Landscape.</a>
+</p>
 
 ## Contributing
 
diff --git a/README_CN.md b/README_CN.md
index 438aaf0..e4fab3d 100644
--- a/README_CN.md
+++ b/README_CN.md
@@ -30,8 +30,6 @@ APISIX 是一个云原生、高性能、可扩展的微服务 API 网关。
 
 它是基于 OpenResty 和 etcd 来实现,和传统 API 网关相比,APISIX 具备动态路由和插件热加载,特别适合微服务体系下的 API 管理。
 
-[安装](#安装) | [文档](doc/README_CN.md) | [开发环境](#开发环境) | [FAQ](FAQ.md)
-
 ## 为什么选择 APISIX?
 
 如果你正在构建网站、移动设备或 IoT(物联网)的应用,那么你可能需要使用 API 网关来处理接口流量。
@@ -82,8 +80,6 @@ APISIX 通过插件机制,提供动态负载平衡、身份验证、限流限
 - **全局规则**:允许对所有请求执行插件,比如黑白名单、限流限速等。
 - **[TCP/UDP 代理](doc/stream-proxy-cn.md)**: 动态 TCP/UDP 代理。
 - **[动态 MQTT 代理](doc/plugins/mqtt-proxy-cn.md)**: 支持用 `client_id` 对 MQTT 进行负载均衡,同时支持 MQTT [3.1.*](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html) 和 [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html) 两个协议标准。
-- **ACL**: TODO。
-- **Bot detection**: TODO。
 
 ## 在线演示版本
 我们部署了一个在线的 [dashboard](http://apisix.iresty.com) ,方便您了解 APISIX。
@@ -91,87 +87,18 @@ APISIX 通过插件机制,提供动态负载平衡、身份验证、限流限
 ## 安装
 
 APISIX 在以下操作系统中可顺利安装并做过运行测试,需要注意的是:OpenResty 的版本必须 >= 1.15.8.1:
-- CentOS 7
-- Ubuntu 16.04
-- Ubuntu 18.04
-- Debian 9
-- Debian 10
-- macOS
-- **ARM64** Ubuntu 18.04
-
-目前有 4 种安装方式:
-- 如果你在使用 CentOS 7,我们推荐使用 [RPM 包安装](#通过-rpm-包安装centos-7);
-- 在 macOS 中,你需要克隆该仓库并手动安装,请参考[开发手册](doc/dev-manual-cn.md);
-- 其它操作系统,我们推荐使用 [Luarocks 安装方式](#通过-luarocks-安装-不支持-macos);
-- 你也可以使用 [Docker 镜像](https://github.com/iresty/docker-apisix) 来安装。
-
-安装 APISIX 的主要步骤:
-
-1. 运行时依赖:OpenResty 或 Tengine。
-    * OpenResty: 参考 [http://openresty.org/en/installation.html](http://openresty.org/en/installation.html)。
-    * Tengine:参考该安装脚本 [Install Tengine at Ubuntu](.travis/linux_tengine_runner.sh)。
-2. 配置存储中心:参考 [etcd](https://github.com/etcd-io/etcd)。
-
-    *NOTE*:APISIX 目前仅支持 etcd 的 v2 协议存储,但最新版的 etcd (3.4 开始)已经默认关闭 v2 协议。 在启动参数中添加 `--enable-v2=true`,启用 v2 协议。支持 etcd 的 v3 协议开发工作已经开始,很快就能与大家见面。
+CentOS 7, Ubuntu 16.04, Ubuntu 18.04, Debian 9, Debian 10, macOS, **ARM64** Ubuntu 18.04
 
-3. 安装 APISIX 服务。
-
-### 通过 RPM 包安装(CentOS 7)
-
-```shell
-sudo yum install yum-utils
-sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
-sudo yum install -y openresty etcd
-sudo service etcd start
-
-sudo yum install -y https://github.com/apache/incubator-apisix/releases/download/v0.8/apisix-0.8-0.el7.noarch.rpm
-```
+安装 APISIX 的步骤:
+1. 安装运行时依赖:OpenResty 和 etcd,参考[依赖安装文档](doc/install-dependencies.md).
+2. 有以下几种方式来安装 Apache APISIX:
+    - 通过[源码安装](doc/how-to-build-cn.md#通过源码安装);
+    - 如果你在使用 CentOS 7,可以使用 [RPM 包安装](doc/how-to-build-cn.md#通过-rpm-包安装centos-7);
+    - 其它 Linux 操作系统,可以使用 [Luarocks 安装方式](doc/how-to-build-cn.md#通过-luarocks-安装-不支持-macos);
+    - 你也可以使用 [Docker 镜像](https://github.com/apache/incubator-apisix-docker) 来安装。
 
 如果安装成功,就可以参考 [**快速上手**](#快速上手) 来进行体验。如果失败,欢迎反馈给我们。
 
-### 通过 Luarocks 安装 (不支持 macOS)
-
-##### 依赖项
-
-APISIX 是基于 [openresty](http://openresty.org/) 之上构建的, 配置数据的存储和分发是通过 [etcd](https://github.com/etcd-io/etcd) 来完成。
-
-我们推荐你使用 [luarocks](https://luarocks.org/) 来安装 APISIX,不同的操作系统发行版本有不同的依赖和安装步骤,具体可以参考: [安装前的依赖](doc/install-dependencies.md)
-
-##### 安装 APISIX
-
-在终端中执行下面命令完成 APISIX 的安装:
-
-> 通过脚本安装 master 分支的代码
-
-```shell
-sudo sh -c "$(curl -fsSL https://raw.githubusercontent.com/apache/incubator-apisix/master/utils/install-apisix.sh)"
-```
-
-> 通过 Luarocks 安装指定的版本:
-
-```shell
-# 安装 apisix 的 0.8 版本
-sudo luarocks install --lua-dir=/path/openresty/luajit apisix 0.8
-
-# 老版本 luarocks 可能不支持 `lua-dir` 参数,可以删除该选项
-sudo luarocks install apisix 0.8
-```
-
-> 安装完成
-
-```
-    apisix 0.7-0 is now built and installed in /usr/local/apisix/deps (license: Apache License 2.0)
-
-    + sudo rm -f /usr/local/bin/apisix
-    + sudo ln -s /usr/local/apisix/deps/bin/apisix /usr/local/bin/apisix
-```
-
-恭喜,APISIX 已经安装成功。
-
-## 开发环境
-
-如果你是一个开发者,可以从 [开发文档](doc/dev-manual-cn.md) 中获取搭建开发环境和运行测试案例的步骤。
-
 ## 快速上手
 
 1. 启动 APISIX
@@ -196,38 +123,39 @@ Dashboard 默认允许任何 IP 访问。你可以自行修改 `conf/config.yaml
 
 ## 性能测试
 
-使用谷歌云的 4 核心服务器来运行 APISIX,QPS 可以达到 60000,同时延时只有 0.5 毫秒。
-
-你可以看出[性能测试文档](doc/benchmark-cn.md)来了解更多详细内容。
+使用 AWS 的 8 核心服务器来压测 APISIX,QPS 可以达到 140000,同时延时只有 0.2 毫秒。
 
-## 架构设计
+## 文档
 
-[详细设计文档](doc/architecture-design-cn.md)
+[文档](doc/README_CN.md)
 
 ## 视频和文章
 
-- 2019.10.30 [Apache APISIX 微服务架构极致性能架构解析](https://www.upyun.com/opentalk/440.html) .
-- 2019.8.31 [APISIX 技术选型、测试和持续集成](https://www.upyun.com/opentalk/433.html) .
-- 2019.8.31 [APISIX 高性能实战2](https://www.upyun.com/opentalk/437.html) .
-- 2019.7.6 [APISIX 高性能实战(Chinese)](https://www.upyun.com/opentalk/429.html) .
+- 2019.10.30 [Apache APISIX 微服务架构极致性能架构解析](https://www.upyun.com/opentalk/440.html)
+- 2019.8.31 [APISIX 技术选型、测试和持续集成](https://www.upyun.com/opentalk/433.html)
+- 2019.8.31 [APISIX 高性能实战2](https://www.upyun.com/opentalk/437.html)
+- 2019.7.6 [APISIX 高性能实战](https://www.upyun.com/opentalk/429.html)
 
 ## APISIX 的用户有哪些?
-有很多公司和组织把 APISIX 用户学习、研究、生产环境和商业产品中。下面是 APISIX 的用户墙:
+有很多公司和组织把 APISIX 用户学习、研究、生产环境和商业产品中,包括:
 
-![](doc/images/user-wall.jpg)
+1. dasouche.com 大搜车
+1. haieruplus.com 海尔优家
+1. ke.com 贝壳找房
+1. meizu.com 魅族
+1. taikang.com 泰康云
+1. tangdou.com 糖豆网
+1. Tencent Cloud 腾讯云
+1. zuzuche.com 租租车
 
 欢迎用户把自己加入到 [Powered By](doc/powered-by.md) 页面。
 
 ## 全景图
-
-APISIX 被纳入 [云原生软件基金会 API 网关全景图](https://landscape.cncf.io/category=api-gateway&format=card-mode&grouping=category):
-
-![](doc/images/cncf-landscope.jpg)
-
-## 常见问题(FAQ)
-在社区中经常会有开发者问到的一些问题,我们整理在下面这份 [FAQ](FAQ_CN.md) 中:
-
-如果你关心的问题没有在其中,欢迎提交 issue 或者加入下面的 QQ 群和我们沟通。
+<p align="left">
+<img src="https://landscape.cncf.io/images/left-logo.svg" width="150">&nbsp;&nbsp;<img src="https://landscape.cncf.io/images/right-logo.svg" width="200">
+<br/><br/>
+APISIX 被纳入 <a href="https://landscape.cncf.io/category=api-gateway&format=card-mode&grouping=category"> 云原生软件基金会 API 网关全景图</a>
+</p>
 
 ## 参与社区
 
diff --git a/dashboard b/dashboard
deleted file mode 160000
index 5ce7c37..0000000
--- a/dashboard
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 5ce7c37c758f6365da042333d7909c12c0ab6714
diff --git a/doc/README.md b/doc/README.md
index 56591f0..0cc1b5c 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -24,8 +24,7 @@ Reference document
 * [APISIX Readme](../README.md)
 * [Architecture Design](architecture-design.md)
 * [Benchmark](benchmark.md)
-* [Build development ENV](dev-manual.md)
-* [Install Dependencies](install-dependencies.md): How to install dependencies for different OS.
+* [How to build Apache APISIX](how-to-build.md)
 * [Health Check](health-check.md): Enable health check on the upstream node, and will automatically filter unhealthy nodes during load balancing to ensure system stability.
 * Router
     * [radixtree](router-radixtree.md)
@@ -54,3 +53,12 @@ Plugins
 * [ip-restriction](plugins/ip-restriction.md): IP whitelist/blacklist.
 * openid-connect
 * [redirect](plugins/redirect.md): URI redirect.
+
+
+Deploy to the Cloud
+=======
+### AWS
+
+The recommended approach is to deploy APISIX with [AWS CDK](https://aws.amazon.com/cdk/) on [AWS Fargate](https://aws.amazon.com/fargate/) which helps you decouple the APISIX layer and the upstream layer on top of a fully-managed and secure serverless container compute environment with autoscaling capabilities.
+
+See [this guide](https://github.com/pahud/cdk-samples/blob/master/typescript/apisix/README.md) by [Pahud Hsieh](https://github.com/pahud) and learn how to provision the recommended architecture 100% in AWS CDK.
diff --git a/doc/README_CN.md b/doc/README_CN.md
index 20e69ef..7668c2e 100644
--- a/doc/README_CN.md
+++ b/doc/README_CN.md
@@ -24,8 +24,7 @@ Reference document
 * [APISIX 说明](../README_CN.md)
 * [架构设计](architecture-design-cn.md)
 * [压力测试](benchmark-cn.md)
-* [搭建开发环境](dev-manua-cnl.md)
-* [安装依赖](install-dependencies.md): How to install dependencies for different OS.
+* [如何构建 Apache APISIX](how-to-build-cn.md.md)
 * [健康检查](health-check.md): Enable health check on the upstream node, and will automatically filter unhealthy nodes during load balancing to ensure system stability.
 * Router(路由)
     * [radixtree](router-radixtree.md)
diff --git a/doc/dev-manual-cn.md b/doc/how-to-build-cn.md
similarity index 60%
rename from doc/dev-manual-cn.md
rename to doc/how-to-build-cn.md
index 5675968..8798f23 100644
--- a/doc/dev-manual-cn.md
+++ b/doc/how-to-build-cn.md
@@ -16,79 +16,63 @@
 # limitations under the License.
 #
 -->
+# 构建 Apache APISIX
 
-#  开发者手册
+## 1. 安装依赖
+Apache APISIX 的运行环境需要 Nginx 和 etcd,
+所以在安装前,请根据不同的操作系统来[安装依赖](install-dependencies.md)。
 
-## 在开发环境搭建 APISIX
+## 2. 安装 Apache APISIX
 
-不同系统有不同依赖,查看[安装依赖](install-dependencies.md)完成依赖项安装。
+你可以通过源码包、Docker、Luarocks 等多种方式来安装 Apache APISIX。
 
-如果你是开发人员,可以在完成上面安装依赖项后,通过下面的命令快速搭建本地开发环境。
+### 通过源码安装
+
+你可以下载 Apache release 包(Apache APISIX 还没有发布 Apache release),或者从 GitHub 下载源码:
 
 ```shell
-# clone project
 git clone git@github.com:iresty/apisix.git
 cd apisix
+```
 
-# init submodule
-git submodule update --init --recursive
-
-# install dependency
+安装运行时依赖的 Lua 库:
+```
 make deps
 ```
 
-如果一切顺利,你会在最后看到这样的信息:
+### 通过 RPM 包安装(CentOS 7)
+
+```shell
+sudo yum install -y https://github.com/apache/incubator-apisix/releases/download/v0.8/apisix-0.8-0.el7.noarch.rpm
+```
 
-> Stopping after installing dependencies for apisix
+### 通过 Luarocks 安装 (不支持 macOS)
 
-下面是预期的开发环境目录结构:
+在终端中执行下面命令完成 APISIX 的安装(只推荐开发者使用):
+
+> 通过脚本安装 master 分支的代码
+
+```shell
+sudo sh -c "$(curl -fsSL https://raw.githubusercontent.com/apache/incubator-apisix/master/utils/install-apisix.sh)"
+```
+
+> 通过 Luarocks 安装指定的版本:
 
 ```shell
-$ tree -L 2 -d apisix
-apisix
-├── benchmark
-│   ├── fake-apisix
-│   └── server
-├── bin
-├── conf
-│   └── cert
-├── dashboard
-│   ├── css
-│   ├── fonts
-│   ├── img
-│   ├── js
-│   └── tinymce
-├── deps                    # 依赖的 Lua 和动态库,放在了这里
-│   ├── lib64
-│   └── share
-├── doc
-│   ├── images
-│   └── plugins
-├── logs
-├── lua
-│   └── apisix
-├── rockspec
-├── t
-│   ├── admin
-│   ├── config-center-yaml
-│   ├── core
-│   ├── lib
-│   ├── node
-│   ├── plugin
-│   ├── router
-│   └── servroot
-└── utils
+# 安装 apisix 的 0.8 版本
+sudo luarocks install --lua-dir=/path/openresty/luajit apisix 0.8
+
+# 老版本 luarocks 可能不支持 `lua-dir` 参数,可以删除该选项
+sudo luarocks install apisix 0.8
 ```
 
-## 管理(启动、关闭等)APISIX 服务
+## 3. 管理(启动、关闭等)APISIX 服务
 
 我们可以在 apisix 的目录下用 `make run` 命令来启动服务,或者用 `make stop` 方式关闭服务。
 
 ```shell
 # init nginx config file and etcd
 $ make init
-./bin/apisix init
-./bin/apisix init_etcd
 
 # start APISIX server
 $ make run
@@ -113,7 +97,7 @@ Makefile rules:
     test:         Run the test case
 ```
 
-## 运行测试案例
+## 4. 运行测试案例
 
 1. 先安装 perl 的包管理器 cpanminus
 2. 然后通过 cpanm 来安装 test-gninx:`sudo cpanm --notest Test::Nginx IPC::Run > build.log 2>&1 || (cat build.log && exit 1)`
diff --git a/doc/dev-manual.md b/doc/how-to-build.md
similarity index 60%
rename from doc/dev-manual.md
rename to doc/how-to-build.md
index a423d9d..307c4ab 100644
--- a/doc/dev-manual.md
+++ b/doc/how-to-build.md
@@ -17,78 +17,64 @@
 #
 -->
 
-# dev-manual
+# Build Apache APISIX
 
-## Install APISIX in development environment
+## 1. Install dependencies
+The runtime environment for Apache APISIX requires Nginx and etcd.
+So before installation, please follow the different operating systems [install Dependencies](install-dependencies.md).
 
-For different operating systems have different dependencies, see detail: [Install Dependencies](install-dependencies.md).
+## 2. Install Apache APISIX
 
-If you are a developer, we can set up a local development environment with the following commands after we installed dependencies.
+You can install Apache APISIX in a variety of ways, including source code packages, Docker, and Luarocks.
+
+### Installation via source code
+
+You can download the Apache release package (Apache APISIX has not released the Apache release yet), or download the source code from GitHub:
 
 ```shell
 git clone git@github.com:iresty/apisix.git
 cd apisix
+```
 
-# init submodule
-git submodule update --init --recursive
-
-# install dependency
+Install the Lua library that the runtime depends on:
+```
 make deps
 ```
 
-If all goes well, you will see this message at the end:
+### Installation via RPM package (CentOS 7)
+
+```shell
+sudo yum install -y https://github.com/apache/incubator-apisix/releases/download/v0.8/apisix-0.8-0.el7.noarch.rpm
+```
+
+### Installation via Luarocks (macOS not supported)
 
-> Stopping after installing dependencies for apisix
+Execute the following command in the terminal to complete the installation of APISIX (only recommended for developers):
 
-The following is the expected development environment directory structure:
+> Install the code for the master branch via a script
 
 ```shell
-$ tree -L 2 -d apisix
-apisix
-├── benchmark
-│   ├── fake-apisix
-│   └── server
-├── bin
-├── conf
-│   └── cert
-├── dashboard
-│   ├── css
-│   ├── fonts
-│   ├── img
-│   ├── js
-│   └── tinymce
-├── deps                    # dependent Lua and dynamic libraries
-│   ├── lib64
-│   └── share
-├── doc
-│   ├── images
-│   └── plugins
-├── logs
-├── lua
-│   └── apisix
-├── rockspec
-├── t
-│   ├── admin
-│   ├── config-center-yaml
-│   ├── core
-│   ├── lib
-│   ├── node
-│   ├── plugin
-│   ├── router
-│   └── servroot
-└── utils
+sudo sh -c "$(curl -fsSL https://raw.githubusercontent.com/apache/incubator-apisix/master/utils/install-apisix.sh)"
+```
+
+> Install the specified version via Luarocks:
+
+```shell
+# Install version 0.8
+sudo luarocks install --lua-dir=/path/openresty/luajit apisix 0.8
+
+# old luarocks not support the `lua-dir` parameter, you can remove this option
+sudo luarocks install apisix 0.8
 ```
 
 ## Manage (start/stop) APISIX Server
 
-We can start the APISIX server by command `make run` in apisix home folder,
+We can start the APISIX server by command `make run` in APISIX home folder,
 or we can stop APISIX server by command `make stop`.
 
 ```shell
 # init nginx config file and etcd
 $ make init
-./bin/apisix init
-./bin/apisix init_etcd
 
 # start APISIX server
 $ make run
diff --git a/doc/images/cncf-landscope.jpg b/doc/images/cncf-landscope.jpg
deleted file mode 100644
index bbe7520..0000000
Binary files a/doc/images/cncf-landscope.jpg and /dev/null differ
diff --git a/doc/images/plugin/jwt-auth-1.png b/doc/images/plugin/jwt-auth-1.png
index 5dab7c6..608dbd9 100644
Binary files a/doc/images/plugin/jwt-auth-1.png and b/doc/images/plugin/jwt-auth-1.png differ
diff --git a/doc/images/plugin/jwt-auth-2.png b/doc/images/plugin/jwt-auth-2.png
index be17a02..f599191 100644
Binary files a/doc/images/plugin/jwt-auth-2.png and b/doc/images/plugin/jwt-auth-2.png differ
diff --git a/doc/images/plugin/key-auth-1.png b/doc/images/plugin/key-auth-1.png
index 5dab7c6..f6a9447 100644
Binary files a/doc/images/plugin/key-auth-1.png and b/doc/images/plugin/key-auth-1.png differ
diff --git a/doc/images/plugin/key-auth-2.png b/doc/images/plugin/key-auth-2.png
index c945d46..38fa310 100644
Binary files a/doc/images/plugin/key-auth-2.png and b/doc/images/plugin/key-auth-2.png differ
diff --git a/doc/images/plugin/limit-conn-1.png b/doc/images/plugin/limit-conn-1.png
index 5ab86ac..3e46a6b 100644
Binary files a/doc/images/plugin/limit-conn-1.png and b/doc/images/plugin/limit-conn-1.png differ
diff --git a/doc/images/plugin/limit-conn-2.png b/doc/images/plugin/limit-conn-2.png
index 948e06f..dfbb0f1 100644
Binary files a/doc/images/plugin/limit-conn-2.png and b/doc/images/plugin/limit-conn-2.png differ
diff --git a/doc/images/plugin/limit-count-1.png b/doc/images/plugin/limit-count-1.png
index b3f12b3..9b9b28e 100644
Binary files a/doc/images/plugin/limit-count-1.png and b/doc/images/plugin/limit-count-1.png differ
diff --git a/doc/images/plugin/limit-count-2.png b/doc/images/plugin/limit-count-2.png
index 93776a1..64f99cb 100644
Binary files a/doc/images/plugin/limit-count-2.png and b/doc/images/plugin/limit-count-2.png differ
diff --git a/doc/images/plugin/limit-req-1.png b/doc/images/plugin/limit-req-1.png
index 8a7eac5..4512837 100644
Binary files a/doc/images/plugin/limit-req-1.png and b/doc/images/plugin/limit-req-1.png differ
diff --git a/doc/images/plugin/limit-req-2.png b/doc/images/plugin/limit-req-2.png
index bad046d..0e4726d 100644
Binary files a/doc/images/plugin/limit-req-2.png and b/doc/images/plugin/limit-req-2.png differ
diff --git a/doc/images/plugin/prometheus-1.png b/doc/images/plugin/prometheus-1.png
index 51b8008..6e3c8b6 100644
Binary files a/doc/images/plugin/prometheus-1.png and b/doc/images/plugin/prometheus-1.png differ
diff --git a/doc/images/plugin/prometheus-2.png b/doc/images/plugin/prometheus-2.png
index 4dfe286..f48350b 100644
Binary files a/doc/images/plugin/prometheus-2.png and b/doc/images/plugin/prometheus-2.png differ
diff --git a/doc/images/plugin/zipkin-1.jpg b/doc/images/plugin/zipkin-1.jpg
index 935146b..99184d9 100644
Binary files a/doc/images/plugin/zipkin-1.jpg and b/doc/images/plugin/zipkin-1.jpg differ
diff --git a/doc/images/plugin/zipkin-1.png b/doc/images/plugin/zipkin-1.png
index fc0083e..60698a4 100644
Binary files a/doc/images/plugin/zipkin-1.png and b/doc/images/plugin/zipkin-1.png differ
diff --git a/doc/images/plugin/zipkin-2.jpg b/doc/images/plugin/zipkin-2.jpg
index 291cd4b..a7d866f 100644
Binary files a/doc/images/plugin/zipkin-2.jpg and b/doc/images/plugin/zipkin-2.jpg differ
diff --git a/doc/images/plugin/zipkin-2.png b/doc/images/plugin/zipkin-2.png
index 9ed6097..acfb0b6 100644
Binary files a/doc/images/plugin/zipkin-2.png and b/doc/images/plugin/zipkin-2.png differ
diff --git a/doc/images/user-wall.jpg b/doc/images/user-wall.jpg
deleted file mode 100644
index 9374f9b..0000000
Binary files a/doc/images/user-wall.jpg and /dev/null differ
diff --git a/doc/install-dependencies.md b/doc/install-dependencies.md
index 3b22e59..abf7703 100644
--- a/doc/install-dependencies.md
+++ b/doc/install-dependencies.md
@@ -18,6 +18,11 @@
 -->
 
 # Install Dependencies
+**NOTE**
+- Apache APISIX currently only supports the v2 protocol storage to etcd, but the latest version of etcd (starting with 3.4) has turned off the v2 protocol by default.
+You need to add `--enable-v2=true` to the startup parameter to enable the v2 protocol. The development of the v3 protocol supporting etcd has begun and will soon be available.
+
+- If you want use Tengine instead of OpenResty, please take a look at this installation step script [Install Tengine at Ubuntu](.travis/linux_tengine_runner.sh).
 
 - [Install Dependencies](#install-dependencies)
 - [CentOS 6](#centos-6)
diff --git a/doc/powered-by.md b/doc/powered-by.md
index 84b0e4f..bbbbe05 100644
--- a/doc/powered-by.md
+++ b/doc/powered-by.md
@@ -19,22 +19,26 @@
 
 # Powered by APISIX
 
-This page documents an **alphabetical list** of institutions that are using APISIX for research and production,
+This page documents an alphabetical list of institutions that are using APISIX for research and production,
 or providing commercial products including APISIX.
 
 Users are encouraged to add themselves to this page, [issue](https://github.com/apache/incubator-apisix/issues/487) and PR are welcomed.
 
+1. chaolian 超链云商 https://www.chaolian360.com/
 1. cunw 湖南新云网 http://www.cunw.com.cn/
+1. dasouche 大搜车 https://www.dasouche.com/
 1. fansup.mobi https://fansup.mobi/
+1. haieruplus.com 海尔优家  http://haieruplus.com/
+1. HelloTalk, Inc  https://www.hellotalk.com/
 1. ke.com 贝壳找房 https://www.ke.com/
 1. Meizu 魅族 https://www.meizu.com/
 1. sinovatech 炎黄新星 https://www.sinovatech.com
-1. souche 大搜车 https://www.souche.com/
+1. taikang.com 泰康云   http://taikang.com/
+1. tangdou.com 糖豆网   http://www.tangdou.com/
 1. Tencent Cloud 腾讯云 https://cloud.tencent.com/
 1. zuzuche 租租车 https://www.zuzuche.com/
 1. chaolian 超链云商 https://www.chaolian360.com/
 1. HelloTalk, Inc  https://www.hellotalk.com/
-1. tangdou 糖豆网 http://www.tangdou.com
 
 
 # User Cases
diff --git a/rockspec/apisix-0.9-rc1.rockspec b/rockspec/apisix-0.9-0.rockspec
similarity index 96%
rename from rockspec/apisix-0.9-rc1.rockspec
rename to rockspec/apisix-0.9-0.rockspec
index ff85549..28952bb 100644
--- a/rockspec/apisix-0.9-rc1.rockspec
+++ b/rockspec/apisix-0.9-0.rockspec
@@ -15,12 +15,12 @@
 -- limitations under the License.
 --
 package = "apisix"
-version = "0.9-rc1"
+version = "0.9-0"
 supported_platforms = {"linux", "macosx"}
 
 source = {
     url = "git://github.com/apache/incubator-apisix",
-    branch = "0.9-rc1",
+    branch = "v0.9",
 }
 
 description = {
@@ -47,6 +47,7 @@ dependencies = {
     "lua-tinyyaml = 0.1",
     "iresty-nginx-lua-prometheus = 0.20190917",
     "jsonschema = 0.4",
+    "lua-resty-ipmatcher = 0.3",
 }
 
 build = {