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-11-08 11:44:54 +08:00
* [Chinese ](./zh-cn/README.md )
2019-10-23 15:14:55 +08:00
2020-11-08 11:44:54 +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 )
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 )
2020-11-08 11:44:54 +08:00
* [Admin API ](admin-api.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 )
2020-10-31 07:28:42 +08:00
* [gRPC Proxy ](grpc-proxy.md )
2020-11-25 19:23:31 +08:00
* [Customize Nginx Configuration ](./customize-nginx-configuration.md )
2019-10-23 15:14:55 +08:00
* [Changelog ](../CHANGELOG.md )
2020-11-08 11:44:54 +08:00
* [Benchmark ](benchmark.md )
2019-10-23 15:14:55 +08:00
* [Code Style ](../CODE_STYLE.md )
* [FAQ ](../FAQ.md )
2020-11-08 11:44:54 +08:00
## Plugins
### General
2019-10-23 15:14:55 +08:00
2020-08-07 21:06:59 +08:00
* [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.
2020-11-08 11:44:54 +08:00
### Transformation
2020-08-07 21:06:59 +08:00
* [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.
2020-11-08 11:44:54 +08:00
### 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
* [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-11-08 11:44:54 +08:00
* [openid-connect ](plugins/openid-connect.md )
### Security
2020-08-07 21:06:59 +08:00
* [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
2020-11-08 11:44:54 +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.
2020-10-31 07:30:06 +08:00
* [api-breaker ](plugins/api-breaker.md ): Circuit Breaker for API that stops requests forwarding to upstream in case of unhealthy state.
2020-08-07 21:06:59 +08:00
2020-11-08 11:44:54 +08:00
### 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.
2020-11-08 11:44:54 +08:00
### Loggers
2020-08-07 21:06:59 +08:00
* [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-11-08 11:44:54 +08:00
## Deploy
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.
2020-06-23 19:04:05 +08:00
### Kubernetes
See [this guide ](../kubernetes/README.md ) and learn how to deploy apisix in Kubernetes.