2019-10-31 09:27:28 +08:00
<!--
#
# 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.
#
-->
2020-06-30 13:33:35 +08:00
2020-06-19 12:03:55 +08:00
[Chinese ](./zh-cn/README.md )
2019-10-23 15:14:55 +08:00
2019-11-24 21:15:39 +08:00
Reference Documentation
2019-10-23 15:14:55 +08:00
==================
2020-06-19 12:03:55 +08:00
* [APISIX Readme ](./README.md )
2019-10-23 15:14:55 +08:00
* [Architecture Design ](architecture-design.md )
* [Benchmark ](benchmark.md )
2019-12-11 13:42:53 +08:00
* [Getting Started Guide ](getting-started.md )
2019-11-25 13:09:32 +08:00
* [How to build Apache APISIX ](how-to-build.md )
2019-10-23 15:14:55 +08:00
* [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.
2020-06-30 13:33:35 +08:00
* [Router radixtree ](router-radixtree.md )
2019-10-23 15:14:55 +08:00
* [Stand Alone Model ](stand-alone.md ): Supports to load route rules from local yaml file, it is more friendly such as under the kubernetes(k8s).
* [Stream Proxy ](stream-proxy.md )
2019-12-13 22:59:40 +08:00
* [Admin API ](admin-api.md )
2019-10-23 15:14:55 +08:00
* [Changelog ](../CHANGELOG.md )
* [Code Style ](../CODE_STYLE.md )
* [FAQ ](../FAQ.md )
Plugins
=======
2020-08-07 21:06:59 +08:00
**General**
* [batch-requests ](plugins/batch-requests.md ): Allow you send mutiple http api via **http pipeline** .
2019-10-23 15:14:55 +08:00
* [hot reload ](plugins.md ): Hot reload without reload service.
2020-08-07 21:06:59 +08:00
* [HTTPS/TLS ](https.md ): Dynamic load the SSL Certificate by Server Name Indication (SNI).
* [serverless ](plugins/serverless.md ): Allows to dynamically run Lua code at *different* phase in APISIX.
* [redirect ](plugins/redirect.md ): URI redirect.
**Transformation**
* [response-rewrite ](plugins/response-rewrite.md ): Set customized response status code, body and header to the client.
* [proxy-rewrite ](plugins/proxy-rewrite.md ): Rewrite upstream request information.
* [grpc-transcode ](plugins/grpc-transcode.md ): REST < -- > gRPC transcoding.
* [fault-injection ](plugins/fault-injection.md ): The specified response body, response code, and response time can be returned, which provides processing capabilities in different failure scenarios, such as service failure, service overload, and high service delay.
**Authentication**
2019-10-23 15:14:55 +08:00
* [key-auth ](plugins/key-auth.md ): User authentication based on Key Authentication.
2019-11-24 21:15:39 +08:00
* [JWT-auth ](plugins/jwt-auth.md ): User authentication based on [JWT ](https://jwt.io/ ) (JSON Web Tokens) Authentication.
2020-02-14 11:08:11 +08:00
* [basic-auth ](plugins/basic-auth.md ): User authentication based on Basic Authentication.
2020-08-07 21:06:59 +08:00
* [oauth ](plugins/oauth.md ): Provides OAuth 2 authentication and introspection.
**Authorization**
* [authz-keycloak ](plugins/authz-keycloak.md ): Authorization with Keycloak Identity Server.
2020-02-14 11:08:11 +08:00
* [wolf-rbac ](plugins/wolf-rbac.md ) User Authentication and Authorization based on *RBAC* .
2020-08-07 21:06:59 +08:00
**Security**
* [cors ](plugins/cors.md ): Enable CORS(Cross-origin resource sharing) for your API.
* [uri-blocker ](plugins/uri-blocker.md ): Block client request by URI.
* [ip-restriction ](plugins/ip-restriction.md ): IP whitelist/blacklist.
2020-10-06 18:20:17 +08:00
* [referer-restriction ](plugins/referer-restriction.md ): Referer whitelist.
2020-08-07 21:06:59 +08:00
**Traffic**
2019-10-23 15:14:55 +08:00
* [limit-req ](plugins/limit-req.md ): Request rate limiting and adjustment based on the "leaky bucket" method.
* [limit-conn ](plugins/limit-conn.md ): Limite request concurrency (or concurrent connections).
2020-08-07 21:06:59 +08:00
* [limit-count ](plugins/limit-count.md ): Rate limiting based on a "fixed window" implementation.
* [proxy-cache ](plugins/proxy-cache.md ): Provides the ability to cache upstream response data.
* [request-validation ](plugins/request-validation.md ): Validates requests before forwarding to upstream.
* [proxy-mirror ](plugins/proxy-mirror.md ): Provides the ability to mirror client requests.
**Monitoring**
2019-10-23 15:14:55 +08:00
* [prometheus ](plugins/prometheus.md ): Expose metrics related to APISIX and proxied upstream services in Prometheus exposition format, which can be scraped by a Prometheus Server.
* [OpenTracing ](plugins/zipkin.md ): Supports Zikpin and Apache SkyWalking.
2020-08-07 21:06:59 +08:00
* [Skywalking ](plugins/skywalking.md ): Supports Apache SkyWalking.
**Loggers**
* [http-logger ](plugins/http-logger.md ): Log requests to http servers.
2020-03-25 08:26:45 +08:00
* [tcp-logger ](plugins/tcp-logger.md ): Log requests to TCP servers.
* [kafka-logger ](plugins/kafka-logger.md ): Log requests to External Kafka servers.
2020-08-07 21:06:59 +08:00
* [udp-logger ](plugins/udp-logger.md ): Log requests to UDP servers.
* [sys-log ](plugins/syslog.md ): Log requests to Syslog.
2020-08-26 16:40:36 +08:00
* [log-rotate ](plugins/log-rotate.md ): Rotate access/error log files.
2019-11-25 13:09:32 +08:00
2020-06-23 19:04:05 +08:00
Deploy
2019-11-25 13:09:32 +08:00
=======
2020-06-22 14:45:55 +08:00
2019-11-25 13:09:32 +08:00
### 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.
2020-06-23 19:04:05 +08:00
### Kubernetes
See [this guide ](../kubernetes/README.md ) and learn how to deploy apisix in Kubernetes.