Kong or Kong API Gateway is a cloud-native, platform-agnostic, scalable API Gateway distinguished for its high performance and extensibility via plugins.
By providing functionality for proxying, routing, load balancing, health checking, authentication (and more), Kong serves as the central layer for orchestrating microservices or conventional API traffic with ease.
Kong runs natively on Kubernetes thanks to its official Kubernetes Ingress Controller.
Let’s test drive Kong by adding authentication to an API in under 5 minutes.
We suggest using the docker-compose distribution via the instructions below, but there is also a docker installation procedure if you’d prefer to run the Kong API Gateway in DB-less mode.
Whether you’re running in the cloud, on bare metal, or using containers, you can find every supported distribution on our official installation page.
- To start, clone the Docker repository and navigate to the compose folder.
$ git clone https://github.com/Kong/docker-kong $ cd compose/
- Start the Gateway stack using:
$ KONG_DATABASE=postgres docker-compose --profile database up
The Gateway will be available on the following ports on localhost:
:8000 on which Kong listens for incoming HTTP traffic from your clients, and forwards it to your upstream services.
:8001 on which the Admin API used to configure Kong listens.
Next, follow the quick start guide to tour the Gateway features.
By centralizing common API functionality across all your organization's services, the Kong API Gateway creates more freedom for engineering teams to focus on the challenges that matter most.
The top Kong features include:
- Advanced routing, load balancing, health checking - all configurable via a RESTful admin API or declarative configuration.
- Authentication and authorization for APIs using methods like JWT, basic auth, OAuth, ACLs and more.
- Proxy, SSL/TLS termination, and connectivity support for L4 or L7 traffic.
- Plugins for enforcing traffic controls, rate limiting, req/res transformations, logging, monitoring and including a plugin developer hub.
- Sophisticated deployment models like Declarative Databaseless Deployment and Hybrid Deployment (control plane/data plane separation) without any vendor lock-in.
- Native ingress controller support for serving Kubernetes.
Plugins provide advanced functionality that extends the use of the Gateway. Many of the Kong Inc. and community-developed plugins like AWS Lambda, Correlation ID, and Response Transformer are showcased at the Plugin Hub.
Contribute to the Plugin Hub and ensure your next innovative idea is published and available to the broader community!
- Contributor Guide (CONTRIBUTING.md) to learn about how to contribute to Kong.
- Development Guide (DEVELOPER.md): Setting up your development environment.
- CODE_OF_CONDUCT and COPYRIGHT
Join the Community
- Join the Kong discussions at the Kong Nation forum: https://discuss.konghq.com/
- Follow us on Twitter: https://twitter.com/thekonginc
- Check out the docs: https://docs.konghq.com/
- Keep updated on YouTube by subscribing: https://www.youtube.com/c/KongInc/videos
- Read up on the latest happenings at our blog: https://konghq.com/blog/
- Visit our homepage to learn more: https://konghq.com/
Kong Inc. offers commercial subscriptions that enhance the Kong API Gateway in a variety of ways. Customers of Kong's Konnect Cloud subscription take advantage of additional gateway functionality, commercial support, and access to Kong's managed (SaaS) control plane platform. The Konnect Cloud platform features include real-time analytics, a service catalog, developer portals, and so much more! Get started with Konnect Cloud.
Copyright 2016-2022 Kong Inc. Licensed 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.